home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1997 April
/
EnigmA AMIGA RUN 17 (1997)(G.R. Edizioni)(IT)[!][issue 1997-04][EAR-CD].iso
/
EARCD
/
gfx
/
3d
/
rayst040.lha
/
basic.lha
/
Docs
/
RayStorm.doc
next >
Wrap
Text File
|
1996-11-30
|
111KB
|
3,629 lines
November 29th 1996
R a y S t o r m 3mv1.70m
by Andreas Heumann and Mike Hesser
0m1m1. Introduction0m
3m Introduction 0m What is RayStorm?
3m Requirements 0m What do I need to run it?
3m Features 0m What can Scenario do?
3m Limitations 0m What limitations has the demo version?
0m1m2. Installation0m
3m Installation 0m How can I install it?
0m1m3. General information0m
3m Raytracing 0m What is raytracing?
3m Octree 0m What is an octree?
3m Antialiasing 0m What is antialiasing?
3m Depth of field 0m What is Depth of Field?
3m Soft shadows 0m What are soft shadows?
3m Motion Blur 0m What is Motion Blur?
3m Surfaces 0m What meaning have the surface parameters?
3m Directory Structure0m Some words to directory and project structures.
3m Virtual Memory 0m How do I use virutal memory?
3m Internals 0m Some internal details.
3m Tips & Tricks 0m Useful tips,tricks and hints (FAQ)
3m Textures 0m How do I use textures?
0m1m3. Scenario Usage0m
3m Usage 0m How do I use Scenario?
3m Menus 0m Description of the menus.
3m Buttons 0m Description of the buttons.
3m Object Menus 0m Description of object orientated menus.
3m Keyboard Control 0m How do I use Scenario with the keyboard?
0m1m4. Script Usage0m
3m ARexx interface 0m Which commands doe it have?
3m Examples 0m How do I use the examples?
3m Tutorials 0m Some tutorials
0m1m5. Registration0m
3m Register 0m What must I do to register?
0m1m6. Misc0m
3m Known Bugs 0m Bugs
3m Credits 0m Thanks go to...
3m Authors 0m Who wrote it?
3m Literature 0m Which books do we use?
3m PC-Version 0m Where can I get the PC-version?
3m Homepage 0m Where to find us on the World Wide Web.
3m History 0m What happened in the past?
3m Future 0m What is planned for the future?
0m1m7. Legal Stuff0m
3m Legal Stuff 0m Legal stuff
0m1mINTRODUCTION0m
This document describes the raytracing package RayStorm. This package consists
of two parts:
- The scene modeler 0m1mScenario0m which is the graphical user interface
(GUI) of the RayStorm package.
- The script interface 0m1mRayStorm Script0m, a program wich allowes one
to use the raytracer through a script language.
- The heart of RayStorm: 0m1mRayStorm Raytracer0m, wich generates the
picture from a scene description (this part is not visible for the user
but nevertheless it's the main part).
Here are some additional informations to the parts:
3mRayStorm Scenario0m
3mRayStorm Script0m
3mRayStorm Raytracer0m
0m1mINTRODUCTION TO SCENARIO0m
As we developed Scenario we tried to make the user interface to use as
easy as possible to enable even absolute beginners to work with it. Therefore
almost all actions can be performed with the mouse. For advanced users we
implemented keyboard shortcuts for almost all functions.
0m1mINTRODUCTION TO RAYSTORM SCRIPT0m
The script language that contains the description of the scene is easy to
learn and offers some powerful capabilities. In addition, the script language
has a full support for key frame animation.
A RayStorm script file (.ray files) is basically divided into the following
sections:
- Various settings of the camera, the world and the lights,
- Definitions of the different textured surfaces,
- Different actors that set the Motion Blur and animation parameters,
- Objects that are associated with surfaces and actors
- Settings for the final rendered graphic.
For a more detailed description click 3mhere0m.
0m1mINTRODUCTION TO RAYSTORM RAYTRACER0m
The raytracer itself is a part to RayStorm which is not directly visible.
All features of the raytracer are packed into a shared library. Both Scenario
and RayStorm Script use this library to render their scenes.
The raytracer is based on a fast octree algorithm. It has some powerfull
features such as 3mMotion Blur0m and 3mDepth of Field0m.
0m1mGENERAL0m
Raytracing makes it possible to generate fotorealistic pictures of objects.
A raytracer casts a ray form the position of the viewer through a scene
and calculates possible intersections with the objects in that scene. If an
intersection is found, the raytracer decides which color the object
at this position has. If the object is reflective or transparent, the
raytracer casts new rays from this positon and tests the intersections
again and so on.
To make the surfaces of the objects more realistic, textures which
simulate marble, wood other surfaces can be used.
0m1mOCTREE0m
Simple raytracers determine the intersections with objects by testing all
objects. This can lead to long rendering times if there are a lot of
objects in the scene.
One solution of this problem is the Octree algorithm.
This algorithm divides the scene into eight child-cells recursively until
there is less than oe object in the cell or the maximum depth of the tree is reached.
Division of space with the octree algorithm:
_
/| z
/
/-------/-------/|
^ y/ / / |
| / left / right / b|
|/ / / |a|
|-------/-------| f|c|
| | r|k|
| up | o| /
|---------------| n|/
| | t|
| down | / x
|---------------|/-->
0m1mANTIALIASING0m
RayStorm uses a algorithm called 'Adaptive Supersampling' to do antialiasing.
For each pixel with a high contrast against its four neighbours, the algorithm
casts new rays which are close to the ray used for the pixel itself. The new
color of the pixel is calculated with the supersampled pixels and the gaussian
filter.
Supersampling is also used to do 3mdepth of field0m and 3msoft shadows0m. So if
you want to use this features you have to set a antialiasing value greater
than one. (-> 3mANTIALIAS0m)
Example:
Settings: squareroot of number of samples per pixel: 3
|--------|--------|--------|
| super- | super- | super- |
| sampled| sampled| sampled|
| | | |
|--------|--------|--------|
| super- | | super- |
| sampled| pixel | sampled|
| | | |
|--------|--------|--------|
| super- | super- | super- |
| sampled| sampled| sampled|
| | | |
|--------|--------|--------|
|- Gaussian filter width -|
The rendering time increases dramatically if you use antialiasing. The
values below depend on the contrast of the picture.
Samplesetting rendering time
average case worst case
1 x1 x1
2 x2 x4
3 x4 x8
4 x8 x16
... ... ...
Setting higher than 3 are not leading to significant better results.
0m1mDEPTH OF FIELD0m
Objects in computer graphics are normally rendered in an image plane
using a pinhole camera model. That is to say, no matter how far or how
near the objects are from the camera, they are always in sharp focus.
Depth of field means that only objects at a certain distance from the
camera lens are in sharp focus. Further and nearer objects produce a
blurred image on the film plane.
[From 'Advanced Animation and Rendering Techniques']
To use depth of field you have to set 3mANTIALIAS0m to a value bigger
than one.
3mExample for DOF0m
0m1mSOFT SHADOWS0m
Real Light sources never have a zero size, therefore the shadows behind
objects are never hard edged, they are soft. RayStorm generates this
shadows by jittering the position of the light source. To use soft shadows
you must set 3mDISTRIB0m to a value bigger than one.
0m1mMOTION BLUR0m
Motion blur is temporal anti-aliasing. In animated sequences, the normal
rendering process functions like a camera that possesses an infinitely
short exposure time and this eliminates the blurring of the image due
to relative motion between an object and the film plane. When a series of
images, generated without motion blur, is displayed as an animated
sequence, the illusion of smooth motion is diminished by strobing effects.
As human beings we expect to see loss of detail in moving images.
Motion blur is accounted for in distributed ray tracing by extending the
distributed sampling and jittering into the time domain and computing a
solution that extracts information from the scen over the duration of the
shutter exposure time. Objects are moved as required in the time period
and visibility consequently changes over this time intervall. This method
ensures that highlights and shadows are blurred or not, depending on the
nature of the motion.
[From 'Advanced Animation and Rendering Techniques']
0m1mSURFACES0m
Ambient (set with AMBIENT)
This determines the color of the object in sections which are in shadow.
Diffuse reflection (set with DIFFUSE)
The diffuse reflection falls off as the cosine of the angle between
the normal and the ray to the light. Diffuse reflection determines the
main color of the object (color in Imagine).
Specularly reflected highlights (set with SPECULAR)
Specularly reflected highlights fall off as the cosine of the angle
between the reflected ray and the ray to the light source (specular in
Imagine)
Specular reflection exponent (set with REFEXP)
Determines the size of the specularly reflected highlights, the higher
the smaller the highlight (hardness in Imagine)
Diffuse transmission (set with DIFFTRANS)
Same as diffuse reflection, but only used if the lightsource is on
opposite side of surface. Only applied if tranlucency is not 0.
Specular transmission (set with SPECTRANS)
Same as specular reflection, but only used if the lightsource is on
opposite side of surface. Only applied if tranlucency is not 0.
Specular transmission exponent (set with TRANSEXP)
Same as specular reflection exponent, but only used if the lightsource
is on opposite side of surface.
Specular transmittance (set with TRANSLUC)
Specular transmittance.
Transparency (set with TRANSPAR)
Transparent color (filter in Imagine).
Reflectivity (set with REFLECT)
Reflective color (reflect in Imagine).
Fog lenght (set with FOGLEN) (fog in Imagine).
Index of refraction (set with REFRINDEX)
Determines how the ray through transparent objects is refracted, the higher
the more (index of refraction in Imagine).
Is calculated with the formula
lightspeed in vacuum
index = ----------------------
lightspeed in object .
0m1mDIRECTORY AND PROJECT STRUCTURE0m
scenario the root directory of scenario
|-brushes the brush directory (you can create subdirectories here)
| |- brush 1
| |- brush 2
| |- ...
| |- brush n
|-objects the objects directory (you can create subdirectories here)
| |- object 1
| |- object 1
| |- ...
| |- object n
|-textures the textures directory (you can create subdirectories here)
| |- texture 1
| |- texture 2
| |- ...
| |- texture n
|-projects the projects directory (Scenario creates for every project a subdirectory)
|-project 1 the first project
| |- project.scn the file where the scene is stored (has always this name)
| |-brushes the directory for brushes which are local to this project
| | |- ...
| |-objects the directory for objects which are local to this object
| | |- ...
| |- pic.0001 the rendered pictures
| |- pic.0002
| |- ...
| |- pic.n
|- project 2 another project
|- ...
|- project n
The default project directory can be set with the 3mpreferences0m.
0m1mVIRTUAL MEMORY0m
RayStorm has been tested succesfully with VMM 3.1 from Martin Apel. If you
want use RayStorm with virtual memory notice follwing hints:
- set Minimum VM allocation to 100 bytes if you define large scenes with
many objects, because RayStorm only allocates small pieces of memory for
single objects (less then 200 bytes). If you're loading Imagine objects
RayStorm allocates big blocks of memory so you don't have to set Minimum
VM allocation to 100.
- use a partition or a pseudo-partition for VMM, this is faster
0m1mINTERNALS0m
The development of RayStorm has started in march 1995.
0m1mCompiler0m
- Amiga
Originally, RayStorm has been developed on Amiga using Maxon C++ 3.0
Developer. The final Amiga version was compiled with StormC 1.1.
- PC
The PC version was compiled with WATCOM C++ 10.5.
0m1mMemory requirements of the raytracer0m
Triangle: 156 Bytes (flat shaded)
192 Bytes (Phong shaded)
Sphere: 70 Bytes
Plane: 78 Bytes
Surface: 122 Bytes + length of name
Screenbuffer: 4 Bytes per pixel
Memory requirements of the octree depends on the scene.
0m1mSource Code0m
About 70.000 lines of C++-Code in more than 250 modules (about
1.6 MByte of source).
0m1mREQUIREMENTS0m
(1) You will need at least Kickstart 2.0.
(2) 040-version: 68040 processor (with internal FPU)
(3) 881-version: 68020 processor or better and a mathematical coprocessor)
(4) 020-version: 68020 processor (no math coprocessor needed)
(5) 2MB RAM minimum
(6) RayStorm was written using MUI. Therefore you need muimaster.library
V3.3 or better to run RayStorm.
recommended: 68040, 8MB RAM, Harddisk, GFX-Board
The faster the better :-).
Tested with:
A1200 68030/50, 6MB, 200MB HD
A2000 68040/30, 9MB, 250+250MB HD, Merlin Gfx-board
A2000 68030/14, 68882/20, 4MB, 730+52MB HD
A4000 68030/25, 68882/57, 10MB, 730+80MB HD, Cybervision 64 Gfx-board
0m1mFEATURES0m
0m1mScenario0m
- create spheres, planes, lightsources and cameras
- create mesh objects: cubes, spheres, planes, tubes and cones
- unlimited amount of cameras to view scene from different directions
- define surfaces for all objects, including brushes and textures
- load external objects (RayStorm object files, Imagine TDDD files,
AutoDesk 3DS files and RAW files)
- save and load scenes
- save and load objects
- group and ungroup objects
- preview of surfaces in material requester
- render scenes with RayStorm Raytracer
- preview of renderd scenes
- quadview
0m1mRayStorm Script0m
- ARexx port with 38 commands
0m1mRayStorm Raytracer0m
- Up to 30% faster than Imagine (in trace mode).
- Octree algorithm used for rendering.
- Motion blur for realistic simulations of moving objects.
- Color, reflectivity, filter, altitude and specular mapping.
- Flat, cylinder and sphere mapping.
- Soft brush mapping.
- Mathematical textures: wood, marble, bumps, checker, linear, radial and
stars.
- Tranparency and physically correct refractions.
- 8 levels of antialiasing (adaptive supersampling).
- Rendering box.
- Three builtin object types: sphere, plane and triangle.
- Three light types: ambient, point and spot.
- Depth of field with adjustable focal distance and aperture.
- Soft shadows.
- Backdrop picture.
- Global fog and foggy objects.
- Material attributes for realictic objects: ambient color, diffuse color,
specular color, specular reflection exponent, diffuse transmission color,
specular transmission color, specular transmission exponent, specular
transmittance, transparent color, reflective color, index of refraction,
foglength.
- Bright objects.
- Quick rendering.
- Global reflection map.
- Image formates: IFF-ILBM, PNG, TGA and Datatypes.
- Object format: RayStorm object file, Imagine-TDDD, Autodesk 3DS and RAW
- New image- and object-formats can be easily included because of the
modular concept.
0m1mLIMITATIONS0m
The demo version is limited to a resolution of 160x128. The registered version
does not have any limitations.
Click 3mhere0m for information on how to register RayStorm.
0m1mINSTALLATION0m
There is a installation script included in the archive which uses the
Commodore Installer. Run it to install RayStorm Scenario.
0m1mUSAGE0m
After you have started Scenario you see the worksheet.
At the top of the sheet are the buttons to control view mode, display mode,
edit mode and currently active directions. Here you also can see the
coordinate display.
Below this button bar is the work area. At startup you can see a grid in
the middle and the camera (note: there must always remain at least one camera
in the scene).
All objects, cameras and light sources have a axis to handle it. The axis
consist of a rectangular area - the hot spot or handle - and three lines
which show the orientation of the axis. The axis can be selected by clicking
with the left mouse button at the handle. If it is selected the color of
the axis and the object changes.
Clicking with the left mouse button invokes the modify mode. According to the
slected mode (move, rotate or scale) the world or the selected object(s) can
be modified.
Clicking with the right mouse button opens object specific menus (see
3mObject Menus0m).
0m1mMENUS0m
Project
3m New 0m
3m Open... 0m
3m Save 0m
3m Save As... 0m
3m Render settings...0m
3m Render 0m
3m About... 0m
3m Quit 0m
Edit
3m Cut 0m
3m Copy 0m
3m Paste 0m
3m Delete 0m
3m Select all 0m
3m Deselect all 0m
3m Select next 0m
3m Select previous 0m
3m Mode 0m
3m Active 0m
View
3m Redraw 0m
3m Focus 0m
3m Zoom in 0m
3m Zoom out 0m
3m Zoom fit 0m
3m View 0m
3m Camera to viewer 0m
3m Grid 0m
3m Snap to Grid 0m
3m Gridsize... 0m
3m Show 0m
3m Global settings...0m
Object
3m Attributes... 0m
3m Settings... 0m
3m Group 0m
3m UnGroup 0m
3m Load... 0m
3m Save... 0m
3m Create 0m
3m Mesh 0m
3m Active Camera... 0m
3m Browse... 0m
Settings
3m Prefs... 0m
3m MUI... 0m
3m Load 0m
3m Save 0m
0m1mNEW PROJECT0m
Deletes all objects and creates the default camera.
0m1mOPEN PROJECT0m
Load a new scene.
0m1mSAVE PROJECT0m
Save the current scene.
0m1mSAVE PROJECT AS0m
Save the current scene with the specified name.
0m1mRENDER SETTINGS0m
Opens the 3mrender requester0m. At top of the requester you can select the render
resolutions with a listview or enter the values to the numeric fields. The
values range from 0 to 65535. Here you also can set the rendering field.
RayStorm renders only inside this field. The field is shown in the perspective
window if camera view is switched on.
The 'Show' flag sets enables the direct showing of the picture while the
render process is running (needs KS 3.0 or better).
The 'Quick' flag selects the quick rendering mode. In this mode RayStorm don't
calculates shadows, transparency or reflections.
The 'Octree depth' slider sets the maximum depth of the octree which RayStorm
uses. For almost all scenes a vlaue of three is the best, but in complex scenes
it may be better to use higher values. The higher this value is the longer takes
the initialazion phase and the more memory is needed.
The 'Filename' string gadget sets the filename of the generated picture and the
cycle gadget sets the fileformat. You can show the rendered picture with the
view button.
The 'Ok' button closes the requester and stores the current settings, whereas the
'Cancel' button don't changes the settings.
The 'Render' button starts the rendering of the current scene.
0m1mRENDER PROJECT0m
Renders the current scene.
0m1mAbout0m
Shows the about requester with the version number and the current Arexx port
name.
0m1mQUIT0m
Quits Scenario.
0m1mCUT0m
Moves the currently selected objects to the paste buffer.
0m1mCOPY0m
Copys the currently selected objects to the paste buffer.
0m1mPASTE0m
Copys the currently selected objects from the paste buffer to the scene.
0m1mDELETE0m
Deletes the currently selected objects. The active camera can't be deleted.
0m1mSELECT ALL0m
Selects all objects.
0m1mDESELECT ALL0m
Deselects all objects.
0m1mSELECT NEXT0m
Selects the next object.
0m1mSELECT PREVIOUS0m
Selects the previous object.
0m1mMODE0m
Sets the edit mode:
Move object
Rotate object
Scale object
Move world
Rotate world
Zoom world
0m1mACTIVE0m
Sets the active directions:
X, Y, Z.
0m1mREDRAW0m
Redraws the work area.
0m1mFOCUS0m
Sets the zoom factor so that all selected objects are visible.
0m1mZOOM IN0m
Zooms out by factor two.
0m1mZOOM OUT0m
Zooms in by factor two.
0m1mZOOM FIT0m
Sets the zoom factor so that the whole scene is visible.
0m1mVIEW0m
Sets the view mode:
Front, Right, Top, Perspective, Four, Camera.
0m1mCAMERA TO VIEWER0m
Moves the camera to the the position of the virtual camera, roatates the
camera and sets the opening angles (horizontal and vertial field of view).
0m1mGRID0m
Switches grid on/off.
0m1mSNAP TO GRID0m
Switches grid snapping on/off.
0m1mGRID SIZE0m
Sets grid size.
0m1mSHOW0m
3m Coordinates 0m
3m Names 0m
3m Brushes 0m
3m Textures 0m
0m1mSHOW COORDINATES0m
Switches coordinate display on/off.
0m1mSHOW NAMES0m
Sets the show names mode on/off.
0m1mSHOW BRUSHES0m
Sets the show brushes mode on/off.
0m1mSHOW TEXTURES0m
Sets the show textures mode on/off.
0m1mGlobal0m
Opens the 3mglobal settings requester0m. Here you can change the global scene
settings.
The 'Background' colorfield sets the color of the background of the rendered
picture.
With the 'Backdrop' string gadget you can enter a picture which will replace
the background.
The 'Reflectionmap' string gadget sets the name of a picture which will be
reflected by objects instead of the background. The reflectionmap is even
applied in quick mode.
The 'Ambient' colorfield sets color of the ambient light which is the base
brightness of all objects. In other words: surfaces which are not illuminated
by a light source get the ambient color.
The next group of gadgets set the 3mantialiasing0m parameters. The
antialiasing value ranges from 1 (no antialiasing) to 8 (very high
antialiasing). This value is the squareroot of rays per pixel. Filter width
sets the maximum distance from the main ray to the additional generated rays
in pixels. The 'Contrast' colorfield sets the minimum contrast. If the contrast
of the main pixel against its four neighbours is higher than this color,
RayStorm performs antialiasing at this pixel.
The global fog parameters are controlled with the gadgets of the next group.
'Length' sets the thickness of the fog. The 'Color' colorfield determines the
color of the fog. 'Height' sets the height at which the fog ends. Global fog
always starts at negative infinity in y direction and and at the specified y
position. For more informations about fog click 3mhere0m.
The 'Motionblur level' slider is not activated in this version of Scenario,
because motionblur needs animated objects.
The 'Softshadow level' slider sets the squareroot of the amount of additional
casted rays for softshadow. Soft shadows are caused from light sources with
a size bigger than 0.
The 'Random jitter' flag switches between normal and random sampling. With
random sampling the sampling position is calculated randomly.
0m1mATTRIBUTES0m
Opens the attribute requester for the currently selected object, if no object
is selected no requester is opened.
Here you can set the parameters which determine the apperance of the surface.
The requester is divided into three groups:
- 3mSurface0m
At this page you can set the base apperance of the surface.
- Diffuse
The diffuse reflection falls off as the cosine of the angle between
the normal and the ray to the light. Diffuse reflection determines
the main color of the object.
- Ambient
This determines the color of the object in sections which are in
shadow.
- Specular
Specularly reflected highlights fall off as the cosine of the angle
between the reflected ray and the ray to the light source.
- Diffuse Transmission
Same as diffuse reflection, but only used if the lightsource is on
opposite side of surface. Only applied if tranlucency is not 0.
- Transparence
Transparent color.
- Specular Transmission
Same as specular reflection, but only used if the lightsource is on
opposite side of surface. Only applied if tranlucency is not 0.
- Reflectivity
Reflective color.
- Translucency
Specular transmittance.
- Reflection exponent
Determines the size of the specularly reflected highlights, the higher
the smaller the highlight.
- Index of refraction
Determines how the ray through transparent objects is refracted, the
higher the more.
- Transmission exponent
Same as specular reflection exponent, but only used if the lightsource
is on opposite side of surface.
- Fog length
- Bright
The brightness of the surface is everywhere the same. Light sources don't
affect the surface, no shadows are visible on the surface, but the object
casts shadows.
- 3mBrush0m
Brushes are pictures which are projected to the surface. They can replace
different surface parameters as color, transparency, reflectivity and
specularity. Additional with altitude mapping brushes can change the normals
of the surface to simulate bumps or other structures which go 'in' or come
'out' of the surface.
There are three wrap methods available:
- flat (Flat)
The brush is projected to X-Y plane.
- cylindrical around x- or y-axis (WrapX and WrapY)
The brush is wrapped around the x or y-axis, like on a cylinder. The left
edge of the brush begins at the posititve x-axis and wraps the brush around
the cylinder from 'west' to 'east'.
- spherical (WrapXY)
Wrapping both: around x- and y-axis. It is assumed, that the object is a
sphere. The y-axis is the north/south pole of the spherical mapping. The
left edge of the brush begins at the positive x-axis and wraps the brush
around the sphere from 'west' to 'east'. The brush covers the sphere
exactly once.
Additional brushes can be repeated and mirrored (only for flat or cylindrical
mapping). If 'Soft' is selected, the color between two points of the brush is
softly interpolated.
- 3mTexture0m
Textures are mathematical generated patterns. Textures can change color,
reflectivity, transparency and normals of a surface. Textures are controlled
with a set of 16 parameters.
0m1mPreview0m
Renders a preview of the surface on a sphere (only for KS 3.0 and better).
The light source is always placed right top before the sphere.
All surface attributes can be viewed here except brushes and fog.
If reflectivity is set the RayStorm logo is reflected on the surface.
0m1mSave0m
Saves the surface data.
0m1mLoad0m
Loads surface data.
0m1mSettings0m
Opens the 3msettings requester0m for the currently selected object.
On the first page you can set the name, position, alignment and size of an object.
With the second page you can change object settings. The contents of
this page depends on the object type.
3mCamera 0m
3mPointight0m
3mSpotLight0m
3mMesh 0m
0m1mCAMERA SETTINGS0m
With the 3mcamera settings requester0m you can set various paramaters, which
influence the camera.
With 0m3mTrack0m yue can set the name of an object the camera will track to.
This means that the camera will always point to the axis of the track object.
0m3mFocal distance0m and 0m3mAperture0m set the parameters for
3mDepth of Field0m. If you select 0m3mFocus Track0m and the camera tracks
to an object the focal distance of the camera is automatically set to the
distance between camera and track.
With the values of 0m3mHorizontal0m and 0m3mVertical0m field of view you
can set the opening angle of the camera lens. If you activate the button
0m3mTake VFOV from resolution0m Scenario calculates the vertical field of
view (VFOV) from the resolution and the horizontal field of view (HFOV). An
Example will demonstrate this. You selected a HFOV of 30 degree and a
resolution of 800x600 pixels. This means that the VFOV is
600 / 800 * 30 = 22.5 degree.
0m1mLIGHT SETTINGS0m
With the 3mlight settings requester0m you can set various paramaters which
influence the light.
0m3mColor0m sets the color of the light source.
0m3mFalloff0m is the distance where the intensity of the light source is
zero. A value of zero disables it.
0m3mCast shadows0m enables the light source to cast shadows.
0m3mLens flares0m enables the 3mlens flare settings0m.
0m3mVisible light0m enables the 3mvisible light settings0m.
0m1mLIGHT SETTINGS0m
With the 3mlight settings requester0m you can set various paramaters which
influence the light.
With 0m3mTrack0m you can set the object a spotlight points to. See
3mcamera settings0m for a more detailed explanation of
tracking.
0m3mColor0m sets the color of the light source.
0m3mFalloff0m is the distance where the intensity of the light source is
zero. A value of zero disables it.
0m3mOpening angle0m sets the opening angle of a spotlightsource in degree.
0m3mCast shadows0m enables the light source to cast shadows.
0m3mLens flares0m enables the 3mlens flare settings0m.
0m3mVisible light0m enables the 3mvisible light settings0m.
0m1mLENS FLARES0m
With the 3mlens flare settings0m you can create and change lens flares.
Lens flares only appear when the light source is visible. They appear on an
axis which runs from the center of the light source through the center of the
screen. The position of the flare is relative to the light source it belongs
to. If the position value is zero, the flare appears at the position of the
light source. Higher values of pos move it towards the center of the screen.
Here a some example values and their meaning:
0 : flare has the same position as the light source
100 : flare is in the middle of the screen
200 : flare is on opposite side of the light source
You can also set pos to negative values, so the flare will appear behind the
light source.
The radius of the flare is relative to the horizontal render resolution.
For example: A flare with radius of 20 % renderd with a resolution of 320x200
will have a radius of 0.2*320 = 64 pixels.
0m1mType0m can be one of the following identifiers:
Disc
A flare which looks like a disc
Polygon
A flare which looks like a polygon. The number of edges can be set with
edges.
0m1mFunction0m can be one of the following identifiers:
Plain
the color of the flare is uniform
Ring
the flare looks like a ring
Radial
varies the color of the flare radial around the flare center
0m1mVISIBLE LIGHT0m
With the 3mvisible light settings0m you can change the appearance of the
light source.
In reality, a light source looks like a star with several spikes getting out
of the center of the light source. Usually there's a halo around it too.
The radius (length of the longest spike) of the star is relative to the
horizontal render resolution (see 3mLens Flares0m).
The radius of the halo is relative to the radius of the star itself. A value
of 100 % means, that the halo has the same radius as the star.
The range value determines the difference between the longest and the shortes
spike of the star. A value of 0 % means that all spikes have the same length,
whereas 100 % means that the shortest spike has zero length.
0m1mHow are the spikes computed ?0m
The four spikes in the main directions (0, 90, 180, 270 degrees) always have
maximum length. Spikes between them (45, 135, ... degrees for example) are
shorter and again spikes between them are shorter and so on.
If you enable random, the length of the spikes is randomly changed.
0m1mMESH SETTINGS0m
With the 3mmesh settings requester0m you only can change external objects, the
values are disabled for normal mesh objects.
0m3mObject filename0m sets the the name of the external object which is
attached with the mesh object.
If 0m3mApply surface to chils0m is activated the surface of the mesh
object is applied to the surface of the attached external object.
0m1mGROUP0m
Groups the selected objects.
0m1mUNGROUP0m
Ungroups the selected objects.
0m1mLOAD0m
Loads an external object. Currently Imagine,3DS and RAW objects are supported.
Scenario generates an axis and adds the object as childs of it. It's currently
impossible to change the position, alignment or size of this child objects
directly, nevertheless changing of the parent axis also affects it's childs.
After loading the name of the object file can be changed with the 3mmesh settings0m
requester.
0m1mSAVE0m
Saves an object and it's childs in RayStorm object file format. You can only
save objects from the root level of the object tree. This means you cannot
save child objects. You also cannot save external objects.
0m1mCREATE0m
3m Sphere 0m
3m Plane 0m
3m Pointlight 0m
3m Spotlight 0m
3m Camera 0m
0m1mSPHERE0m
Creates a new sphere at position <0,0,0> with radius 1.
0m1mPLANE0m
Creates a new plane at position <0,0,0> with the normal pointing in positive
y direction.
0m1mPOINTLIGHT0m
Creates a new point light source at position <0,0,0>.
0m1mSPOTLIGHT0m
Creates a new spot light source at position <0,0,0> with a opening angle of
45 degree pointing in negative y direction.
0m1mCAMREA0m
Creates a new pinhole camera at position <0,0,0> with a horizontal and
vertical field of view of 25 degree witch is pointing in positive z
direction.
0m1mMESH0m
3m Axis 0m
3m Cube 0m
3m Sphere 0m
3m Plane 0m
3m Tube 0m
3m Cone 0m
3m Torus 0m
0m1mAXIS0m
Creates a new axis at position <0,0,0> with size <1,1,1>. An axis can be used
to track a camera or a spot lightsource on it.
0m1mCUBE0m
Creates a cube at position <0,0,0>. You can set the size of the cube with a
requester.
0m1mSPHERE0m
Creates a spere at position <0,0,0>. You can set the size, the divisions and
the slices with a requester.
0m1mPlane0m
Creates a plane at position <0,0,0> with normal pointing in positive y-
direction. You can set the divisions with a requester.
0m1mTUBE0m
Creates a tube at position <0,0,0>. You can set the size, the height, the
divisions, the slices and if it's a closed tube with a requester.
0m1mCONE0m
Creates a cone at position <0,0,0>. You can set the size, height, divisions,
slices, and if the cone is closen with a requester.
0m1mTORUS0m
Creates a torus at position <0,0,0>. You can set the inner and outer size, the
division and slices with a requester.
0m1mACTIVE CAMERA0m
You can select the active camera.
0m1mBROWSE0m
Opens the object browser. There are two different selectable behaviours:
- Normal
View by selecting an entry and pressing the view button.
Select object with double click.
- Alternative
View by selecting any entry.
Select object with double click.
The behaviour is selectable in the 3mpreferences requester0m.
0m1mPREFS0m
Opens the preferences requester.
The 3m'Paths'-page0m let you set various paths.
0m1mViewer0m
Sets the path and name of the viewer. This viewer is used to display the
images generated by RayStorm. The filename of the image is appended to the
end of the string. You have specify the whole path, for example not
'multiview' but 'sys:utilities/multiview'.
0m1mProject path0m
Sets the default path for projects
0m1mObject path0m
Sets the default path for objects.
0m1mTexture path0m
Sets the default path for textures.
0m1mBrush path0m
Sets the default path for brushes.
The 3m'Flags'-page0m let you set various flags.
0m1mAlternative browser mode0m
See 3mBrowse0m.
0m1mAlways show coordinates0m
The 3d coordinates of the mouse pointer are displayed for front, right and
top. If a object is transformed, the relative coordinates, rotation angles
or scale fctors are displayed
0m1mMUI0m
Opens the MUI preferences.
0m1mLOAD0m
Loads the preferences from a file called 'scenario.prefs'.
0m1mSAVE0m
Saves the preferences to a file called 'scenario.prefs'.
0m1mBUTTONS0m
The first six buttons are for selecting the view (front, right, top,
perspective, quad and camera view).
The following three buttons select the display type. (bounding box,
wireframe and solid display).
After this are six buttons to select the edit mode (move, rotate, scale object
and move, rotate, scale world).
The next three buttons enable the X, Y and Z-axis.
0m1mOBJECT MENUS0m
Sceneario supports object oriented menus. These menus are shown when you click
the right mouse button inside the work area and hold it. Scenario then pops
up a menu. The contents of this menu depends on the object which is found at
this position.
0m1mWorld menu0m
The world menu is shown if you click on a place where no object is placed.
The menu contents follwing points:
Move: switch to move world
Rotate: switch to rotate (the virtual camera is rotated around the view
point (only perspective mode))
Zoom: zoom in or out
Settings: opens the general settings requester
0m1mObject menu0m
The object menu pops up if you click on the handle of the object.
The menu contents follwing points:
Move: switch to mode move object
Rotate: switch to rotate object (the object is rotated around it's local
axis)
Scale: switch to scale object
Settings: opens the 3msettings0m requester
Attributes: opens the surface 3mattributes0m
requester
0m1mCamera menu0m
The camera menu pops up if you click on the handle of a camera
The menu contents follwing points:
Move, Rotate, Scale, Settings: see object menu
Settings: opens the 3mcamera settings0m requester
Active: sets this camera as the active camera (the scene is viewed with
this camera)
0m1mLight menu0m
Opens the light popup menu.
The menu contents follwing points:
Move, Rotate, Scale, Settings: see object menu
Settings: opens the 3mlight source settings0m requester
0m1mMesh menu0m
Opens the mesh popup menu.
The menu contents follwing points:
Move, Rotate, Scale, Settings: see object menu
Settings: opens the 3mMesh settings0m requester
Attributes: see object menu
To scene: convert external to scene objects
0m1mKEYBOARD CONTROL0m
ESC break redraw
cursor keys Function depends on the curren edit mode (move, rotate, scale of
world or object).
'+' zooms in
'-' zooms out
'm' switches to move object action
'r' switches to rotate object action
's' switches to scale object action
'M' switches to move world action
'R' switches to rotate world action
'S' switches to scale world action
't' opens settings requester
'1' switches to front view
'2' switches to right view
'3' switches to top view
'4' switches to perspective view
'5' switches to quad view
'6' switches to camera view
'x' enable x axis
'y' enable y axis
'z' enable z axis
'F1' render settings
'R-Amiga' - '.' Center view
0m1mTIPS & TRICKS0m
0m1mGeneral0m
- RayStorm renders faster if you don't use planes, because intersections
with planes cannot be calculated with the octree (helpfull in scenes with
motion blur or soft shadows).
0m1mScenario0m
- 0m1mI have problems with the screen refresh, the scene is only refreshed
behind the requester!0m
Open the 3mMUI-settings0m requester and select from the window
part for "Refresh" the "Smart"-mode.
- 0m1mHow can I change the texture and brush names without removing and adding
them again?0m
Select 3mView->Show->Show Textures0m or 3mView->Show->Show Brushes0m
and select the texture or brush. Now open the 3msettings-requester0m and change
the name of the brush or texture.
- 0m1mHow can I change the name of an Imagine/3DS/RAW-object without deleting
and reloding it?0m
Select 3mSettings0m from the object menu of the parent axis. Here you
can change the name of the object.
- 0m1mHow can I load my old Imagine attribute files to use it for RayStorm
objects?0m
Load the attributes file with 3mload object0m. You will get an axis
named 'Mesh' with another axis attached to it. The surface of this axis is set
to the attributes of the file. Click with the right mouse button to the parent
axis and select 3mTo scene0m. The parent axis is no deleted
and can now open the attributes requester for the child axis. Select save from
the 3mattributes requester0m and save the surface as a RayStorm material file.
0m1mRayStorm Script0m
- The commands '3mTEXTUREPATH0m', '3mOBJECTPATH0m' and '3mBRUSHPATH0m' are relative
to the directory RayStorm is started from.
- If RayStorm crashes with scenes with reflections and transparence, try
to start RayStorm with a larger stack (e.g. 8192 Bytes).
0m1mAREXX INTERFACE0m
3mIntroduction0m
3mAddress 0m
3mParameters 0m
3mCommands 0m
3mErrors 0m
0m1mAREXX INTRODUCTION0m
RayStorm is completly controled through it's ARexx interface. We recommend
that you have a look at the 3mtuturials0m and the 3mexample0m
script files in the 'ARexx' directory.
These examples cover most of the features of RayStorm. Further encourage you
to create your own files and make them available for the public. You can send
them to us and we might add them as an example files in the next version of
RayStorm or we include them to our 3mHomepage0m.
In one of the next versions of RayStorm we'll create a more powerful
language, which has a similar syntax to C++.
It's the same if you write the the commands in upper case or lower case.
But it's important to enclose all commans in quotes because ARexx tries
to interpret the line before it sends it to ARexx. It may happen that the
line is changed and RayStorm don't do this what you want.
A typical structure of a scene file is:
/* title, comments, ... */
/* setting resolution, world, camera, lightsources */
'SETSCREEN 160 128'
'SETWORLD [0,0,0] [40,40,40]'
'SETCAMERA <0,0,80> <0,0,0> <0,1,0> 25 20'
'POINTLIGHT <10,-10,100> [255,255,255] SHADOW'
/* define surfaces and actors */
'NEWSURFACE TEST1'
'AMBIENT [255,0,0]'
'DIFFUSE [255,0,0]'
'SPECULAR [255,255,255]'
'NEWSURFACE TEST2'
'AMBIENT [0,0,255]'
/* creating objects */
'SPHERE TEST1 <0,0,0> 10'
'SPHERE TEST2 <0,0,0> 10'
/* finally start to render the scene */
'STARTRENDER'
/* save the image */
'SAVEPIC "test.iff"'
'CLEANUP'
0m1mADDRESS0m
The ARexx-address of RayStorm is 'RAYSTORM'.
0m1mAREXX PARAMETERS0m
The parameters of a command can be FLOATs, INTEGERs, VECTORs, COLORs,
STRINGs, and IDENTIFIERs.
FLOAT An FLOAT is a floating point number with single precision
NUMBER A NUMBER is a simple integer number
VECTOR A VECTOR is embedded in '<' '>' and consists of three FLOATs
COLOR A COLOR is embedded in '[' ']' and consists of three INTEGERs
which range normally from 0 to 255, but you can also set negative
values or values above of 255.
STRING A STRING consists of characters
KEYWORD An KEYWORD is a switch and consists of uppercase characters
0m1mPARAMETER CONVENTIONS0m
/S - Switch.
/N - Number.
/A - Required.
All other numeric parameters are floating point numbers.
0m1mAREXX COMMANDS0m
3m General 0m
3m Objects 0m
3m Attributes 0m
3m Animation 0m
0m1mAlphabetically sorted0m
0m1m-A-0m
3mALIGNMENT 0m
3mAMBIENT 0m
3mANTIALIAS 0m
0m1m-B-0m
3mBRUSH 0m
3mBRUSHPATH 0m
0m1m-C-0m
3mCLEANUP 0m
0m1m-D-0m
3mDIFFTRANS 0m
3mDIFFUSE 0m
3mDISPLAY 0m
3mDISTRIB 0m
0m1m-F-0m
3mFLARE 0m
3mFOGLEN 0m
0m1m-G-0m
3mGETERRORSTR0m
0m1m-I-0m
3mIMTEXTURE 0m
0m1m-L-0m
3mLOADOBJ 0m
0m1m-N-0m
3mNEWSURFACE 0m
0m1m-O-0m
3mOBJECTPATH 0m
0m1m-P-0m
3mPLANE 0m
3mPOINTLIGHT 0m
3mPOSITION 0m
0m1m-Q-0m
3mQUIT 0m
0m1m-R-0m
3mREFEXP 0m
3mREFLECT 0m
3mREFRINDEX 0m
0m1m-S-0m
3mSAVEPIC 0m
3mSETCAMERA 0m
3mSETSCREEN 0m
3mSETWORLD 0m
3mSIZE 0m
3mSPECTRANS 0m
3mSPECULAR 0m
3mSPHERE 0m
3mSPOTLIGHT 0m
3mSTAR 0m
3mSTARTRENDER0m
0m1m-T-0m
3mTEXTUREPATH0m
3mTRANSEXP 0m
3mTRANSLUC 0m
3mTRANSPAR 0m
3mTRIANGLE 0m
0m1m-W-0m
3mWINTOFRONT 0m
0m1mGENERAL AREXX-COMMANDS0m
3mANTIALIAS 0m sets antialiasing parameters
3mBRUSHPATH 0m sets brush path
3mCLEANUP 0m cleanups scene
3mDISPLAY 0m displays scene
3mDISTRIB 0m sets parameters for distributive sampling
3mFLARE 0m add a flare to a lightsource
3mGETERRORSTR0m gets a error string for a given number
3mOBJECTPATH 0m sets object path
3mPOINTLIGHT 0m creates point lightsource
3mQUIT 0m quits RayStorm
3mSAVEPIC 0m saves rendered picture
3mSETCAMERA 0m sets camera parameters
3mSETSCREEN 0m sets screen parameters
3mSETWORLD 0m sets world parameters
3mSPOTLIGHT 0m creates spot lightsource
3mSTAR 0m add a light star to a lightsource
3mSTARTRENDER0m starts rendering
3mTEXTUREPATH0m sets texture path
3mWINTOFRONT 0m brings window to front
0m1mANTIALIAS0m
0m1mTemplate:0m
SAMPLES/N/A,WIDTH,CONTRIB
0m1mArguments:0m
NUMBER SAMPLES
squareroot of number of samples per pixel (max. 8)
FLOAT WIDTH
width of gaussian filter. The range is infinite but values between 1 and
3 are recommended.
COLOR CONTRIB
max. allowed contrast
0m1mDescription:0m
Sets antialiasing parameters (see 3mAntialiasing0m)
0m1mDefault:0m
ANTIALIAS 1 1.3 [51,38,76]
0m1mBRUSHPATH0m
0m1mTemplate:0m
PATH/A
0m1mArguments:0m
STRING PATH
pathname
0m1mDescription:0m
Defines the path where to search brushes. More than one path may be included
as long as they are separated by semi-colons.
0m1mExample:0m
BRUSHPATH 'path1;path2'
0m1mCLEANUP0m
0m1mTemplate:0m
none
0m1mArguments:0m
none
0m1mDescription:0m
Deletes all defined objects, lightsources, surfaces and actors
0m1mDISPLAY0m
0m1m!!! CAUTION !!!
THIS COMMAND ISN'T RELEASED IN THIS VERSION YET
!!! CAUTION !!!0m
0m1mTemplate:0m
FLOYD/S
0m1mArguments:0m
KEYWORD FLOYD/S
dither with Floyd-Steinberg algorithm
0m1mDescription:0m
Displays rendered pic on screen
0m1mDISTRIB0m
0m1mTemplate:0m
SAMPLES/N,SOFTSHADOW/N
0m1mArguments:0m
NUMBER SAMPLES/N
squareroot of number of samples per pixel for motionblur
NUMBER SOFTSHADOW/N
squareroot of number of samples per pixel for softshadows
0m1mDescription:0m
Sets number of samples per pixel for distributive sampling (used for
0m1mDefault:0m
DISTRIB 1,1
0m1mGETERRORSTR0m
0m1mTemplate:0m
ERRNUM/N/A
0m1mArguments:0m
NUMBER ERRNUM
error number
0m1mDescription:0m
Returns the error string for the given error number
0m1mOBJECTPATH0m
0m1mTemplate:0m
PATH/A
0m1mArguments:0m
PATH
pathname
0m1mDescription:0m
Defines the path where to search objects. More than one path may be included
as long as they are separated by semi-colons.
0m1mExample:0m
OBJECTPATH 'path1;path2'
0m1mPOINTLIGHT0m
0m1mTemplate:0m
POS/A,COLOR,SIZE,SHADOW/S,ACTOR,FALLOFF
0m1mArguments:0m
VECTOR POS
position of pointlight
COLOR COLOR
color of light
VECTOR SIZE
size of light source (used for 3msoft shadows0m)
KEYWORD SHADOW/S
lightsource casts shadows
STRING ACTOR
name of actor
FLOAT FALLOFF
distance where the brightness of the light is zero
0m1mDescription:0m
Creates a point lightsource. The lightsource casts shadows, if the keyword SHADOW is given
0m1mDefault:0m
POINTLIGHT <0,0,0> [255,255,255] 0 ?? ?? 0
0m1mQUIT0m
0m1mTemplate:0m
none
0m1mArguments:0m
none
0m1mDescription:0m
Quits Raystrom
0m1mSAVEPIC0m
0m1mTemplate:0m
NAME/A,FORMAT
0m1mArguments:0m
STRING NAME
the picture is saved under that name
STRING FORMAT
image format (TGA, PNG, ILBM; default ILBM)
0m1mDescription:0m
Saves rendered picture 24-Bit IFF-ILBM-file, 24 Bit TGA or as PNG file. If
an error occures the command returns an error string.
0m1mExample:0m
SAVEPIC 'path\name with extension'
0m1mSETCAMERA0m
0m1mTemplate:0m
POS/A,VIEWPOINT,VIEWUP,FOVX,FOVY,FOCALDIST,APERTURE,POSACTOR,VIEWACTOR
0m1mArguments:0m
VECTOR POS
position of camera
VECTOR VIEWPOINT
position to which the camera point to
VECTOR VIEWUP
view up vector
FLOAT FOVX, FOVY
field of view (in degree) (20 degree creates camera like Imagine
default camera)
FLOAT FOCALDIST
distance from eye to focal plane
FLOAT APERTURE
aperture width (0 = pinhole) (-> 3mdepth of field0m)
STRING POSACTOR
name of position actor
STRING VIEWACTOR
name of look_at_actor
0m1mDescription:0m
Sets the parameters of the camera
0m1mDefault:0m
SETCAMERA <0,0,-10> <0,0,0> <0,1,0> 45 45 1. 0.
0m1mSETSCREEN0m
0m1mTemplate:0m
RESX/N/A,RESY/N/A,COLORS/N
0m1mArguments:0m
NUMBER RESX, RESY
resolution
NUMBER COLORS
number of colors (not yet implemented)
0m1mDescription:0m
Sets the resolution of the rendered picture. Note that in the demo-version
the resolution is limited to 160x128!
0m1mDefault:0m
SETSCREEN 128 128
0m1mSETWORLD0m
0m1mTemplate:0m
BACK/A,AMBIENT,RANDJIT/S,BACKDROP,FOGLEN,FOGHEIGHT,FOGCOLOR,REFLMAP
0m1mArguments:0m
COLOR BACK
backgroundcolor
COLOR AMBIENT
ambientcolor
KEYWORD RANDJIT
use random jitter for 3mdepth of field0m and 3msoft shadows0m
STRING BACKDROP
name of backdrop picture
FLOAT FOGLEN
global fog length
FLOAT FOGHEIGHT
highest fog y-coordinate
COLOR FOGCOLOR
fogcolor
STRING REFLMAP
name of reflection map
0m1mDescription:0m
Sets world parameters. The backdrop picture is automatically scaled to
the screen resolution.
0m1mDefault:0m
SETWORLD [0,0,0] [0,0,0] ?? 32 0 [255,255,255] ??
0m1mSPOTLIGHT0m
0m1mTemplate:0m
POS/A,COLOR,LOOKPOINT,ANGLE,SIZE,SHADOW/S,ACTOR,LOOKP_ACTOR,FALLOFF
0m1mArguments:0m
VECTOR POS
position of the spotlight
COLOR COLOR
color of light
VECTOR LOOKPOINT
point to which the spotlight shines at
FLOAT ANGLE
opening angel (in degree max. 180)
FLOAT SIZE
size of light source (used for 3msoft shadows0m)
KEYWORD SHADOW
lightsource cats shadows
STRING ACTOR
name of position actor
STRING LOOKP_ACTOR
name of look_at_actor
FLOAT FALLOFF
distance where the brightness of the light is zero
0m1mDescription:0m
Creates a spotlight. The rays emitted from a spotlight are constrained
by a cone. The LOOKPOINT vector gives the center of the illuminated area.
0m1mDefault:0m
SPOTLIGHT <0,0,0> [255,255,255] <0,0,1> 45 0 ?? ?? ?? 0
0m1mFLARE0m
0m1mTemplate:0m
POS/A,RADIUS/A,COLOR,TYPE,FUNCTION,EDGES/N,TILT
0m1mArguments:0m
FLOAT pos
position of flare on light axis (in percent)
FLOAT radius
radius of flare (in percent)
COLOR color
color of flare
KEYWORD type [DISC|POLYGON]
type of flare
KEYWORD function [PLAIN|RING|RADIAL]
look of flare
NUMBER edges
number of edges of polygonal flare (3 - 8 edges possible)
FLOAT tilt
tilt angle of flare (only useful when polygonal flare)
0m1mDescription:0m
A new lens flare is added to the last defined light source. Lens flares only
appear when the light source is visible. They appear on an axis which runs
from the center of the light source through the center of the screen. The
position of the flare is relative to the light source it belongs to. If the
position value is zero, the flare appears at the position of the light source.
Greater values of pos move it towards the center of the screen. Here a some
example values and their meaning:
0 : flare has the same position as the light source
100 : flare is in the middle of the screen
200 : flare is on opposite side of the light source
You can also set pos to negative values, so the flare will appear behind the
light source.
The radius of the flare is relative to the horizontal render resolution.
For example: A flare with radius of 20 % renderd with a resolution of 320x200
will have a radius of 0.2*320 = 64 pixels.
0m1mtype0m can be one of the following identifiers:
DISC
A flare which looks like a disc
POLYGON
A flare which looks like a polygon. The number of edges can be set with
edges.
0m1mfunction0m can be one of the following identifiers:
PLAIN
the color of the flare is uniform
RING
the flare looks like a ring
RADIAL
varies the color of the flare radial around the flare center
0m1mDefault:0m
FLARE 50 10 [50,50,50] DISC PLAIN 5 0
0m1mSTAR0m
0m1mTemplate:0m
SPIKES,RADIUS,HALORADIUS,INNERHALORADIUS,RANGE,RANDOM_SEED/N
0m1mArguments:0m
NUMBER spikes
number of spikes (4 - 256)
FLOAT radius
radius of star (in percent)
FLOAT haloradius
radius of star halo (in percent relative to star radius)
FLOAT innerhaloradius
radius of inner star halo (in percent relative to halo radius)
FLOAT range
range between shortest and longest spike (in percent)
NUMBER random_seed
Random seed value (0-32767)
0m1mDescription:0m
This command makes a light source visible. In reality, a light source looks
like a star with several spikes getting out of the center of the light source.
Usually there's a halo around it too.
The radius (length of the longest spike) of the star is relative to the
horizontal render resolution (see 3mFLARE0m).
The radius of the halo is relative to the radius of the star itself. A value
of 100 % means, that the halo has the same radius as the star.
The range value determines the difference between the longest and the shortes
spike of the star. A value of 0 % means that all spikes have the same length,
whereas 100 % means that the shortest spike has zero length.
0m1mHow are the spikes computed ?0m
The four spikes in the main directions (0, 90, 180, 270 degrees) always have
maximum length. Spikes between them (45, 135, ... degrees for example) are
shorter and again spikes between them are shorter and so on.
If you specify a value for random_seed, the length of the spikes is randomly
changed.
0m1mDefault:0m
STAR 4 30 20 40 0 0
0m1mSTARTRENDER0m
0m1mTemplate:0m
QUICK/S,DEPTH/N,FROM,TO/N,LEFT/N,TOP/N,RIGHT/N,BOTTOM/N
0m1mArguments:0m
KEYWORD QUICK
render quick (no shadows, reflections and transparency)
NUMBER DEPTH
depth of generated 3moctree0m
FLOAT FROM,TO
time code (default 0,0). If you want 3mmotion blur0m you have to
set FROM and TO to different values, else only set FROM.
NUMBER LEFT,TOP,RIGHT,BOTTOM
coordinates for rendering box. Picture is renderd only inside of
rectangle.
0m1mDescription:0m
Starts rendering process. If you set QUICK shadows, reflections and
transparency are not calculated. In very complex scenes it is useful to
increase the octree depth in order to reach a better performance during
the rendering process. But this can only be done with enough memory!
Here are values for the file "chess.ray" renderd with a resolution of
160x128 on a A4000 with 25Mhz 68030 and 57MHz 68882:
depth memory [MByte] init [mm:ss] cleanup [mm:ss] render [mm:ss] total [mm:ss]
2 1.38 00:12 00:02 09:24 09:38
3 1.13 00:14 00:04 03:58 04:16
4 1.55 00:22 00:08 01:50 02:20
5 2.35 00:41 00:26 01:15 02:22
6 5.70 01:35 02:38 01:06 05:19
0m1mDefault:0m
STARTRENDER 3 0 0
0m1mTEXTUREPATH0m
0m1mTemplate:0m
PATH/A
0m1mArguments:0m
PATH
pathname (format: 'path1;path2;...;pathn')
0m1mDescription:0m
Defines the path where to search textures. More than one path may be included
as long as they are separated by semi-colons.
0m1mExample:0m
TEXTUREPATH 'path1;path2'
0m1mWINTOFRONT0m
0m1mTemplate:0m
none
0m1mArguments:0m
none
0m1mDescription:0m
Brings RayStorm window in front
0m1mAREXX-COMMANDS FOR CREATING OBJECTS0m
3mLOADOBJ 0m loads an Imagine TDDD-file
3mPLANE 0m creates a plane (ground in Imagine)
3mSPHERE 0m creates a sphere
3mTRIANGLE0m creates a triangle
0m1mLOADOBJ0m
0m1mTemplate:0m
NAME/A,POS,ALIGN,SCALE,ACTOR,SURFACE
0m1mArguments:0m
STRING NAME
filename
VECTOR POS
position
VECTOR ALIGN
alignment (in degrees)
VECTOR SCALE
size factor
STRING ACTOR
name of actor
STRING SURFACE
name of surface to replace object surface
0m1mDescription:0m
Loads an
- Imagine TDDD-file
loads attributes, triangles (with correct handling of sharp edges),
perfect spheres, planes, brushes and textures
- Autodesk 3D-Studio file
loads attributes, triangles and generates sharp edges
If you specify a surface, all surfaces of the object will have that surface
(overriding any surfaces defined in the object file).
0m1mWhere to get Imagine object files?0m
Look on FTP-servers which support AMINET. For example try out
ftp.uni-paderborn.de
Path: ftp/aminet/pub/gfx/3dobj/
0m1mWhere to get 3D-Studio object files?0m
Try out these WWW-Pages:
For Star wars fans: http://www.loop.com/~hhc/
Mesh Mart: http://cedar.cic.net/~rtilmann/mm/index.htm
Objects Archive: http://sunserver1.rz.uni-duesseldorf.de/~pannozzo/3ds.html
0m1mDefault:0m
LOADOBJ ??? <0,0,0> <0,0,0> <1,1,1>
0m1mPLANE0m
0m1mTemplate:0m
SURF/A,POS,NORM,ACTOR
0m1mArguments:0m
STRING SURF
name of surface
VECTOR POS
position
VECTOR NORM
normal of the plane
STRING ACTOR
name of actor
0m1mDescription:0m
Creates an infinite plane.
0m1mDefault:0m
PLANE ??? <0,0,0> <0,1,0>
0m1mSPHERE0m
0m1mTemplate:0m
SURF/A,POS/A,RADIUS/A,ACTOR
0m1mArguments:0m
STRING SURF
name of surface
VECTOR POS
center of sphere
FLOAT RADIUS
radius of sphere
STRING ACTOR
name of actor
0m1mDescription:0m
Creates a sphere
0m1mDefault:0m
SPHERE ?? <0,0,0> 1
0m1mTRIANGLE0m
0m1mTemplate:0m
SURF/A,P1/A,P2/A,P3/A,N1,N2,N3,ACTOR
0m1mArguments:0m
STRING SURF
name of surface
VECTOR P1
first corner
VECTOR P2
second corner
VECTOR P3
third corner
VECTOR N1
normal at first corner
VECTOR N2
normal at second corner
VECTOR N3
normal at third corner
STRING ACTOR
name of actor
0m1mDescription:0m
Creates a triangle with corners at position P1, P2 and P3. If you specify
the normals, a phong shaded triangle otherwise a flat triangle is created.
Computing the normals by hand is a difficult task, and should be done by
utility programs.
0m1mAREXX-COMMANDS FOR SETTING ATTRIBUTES0m
Every object must have a surface definition. With the following commands
you can set the attributes of a surface. First you have to define the
current surface with 'NEWSURFACE <name>'. Raystorm will set the attributes
of the new surface to default values. Every following command such as
AMBIENT or DIFFTRANS refers to the current surface and will override
the corresponding default values.
The following examples define two surfaces:
NEWSURFACE RED
AMBIENT [255,0,0]
DIFFUSE [255,0,0]
NEWSURFACE WATER
DIFFUSE [0,0,255]
REFRINDEX 1.333
List of surface commands:
3mNEWSURFACE0m creates a new surface
3mAMBIENT 0m sets ambient color
3mBRUSH 0m adds a brush
3mDIFFTRANS 0m sets diffuse transmission color
3mDIFFUSE 0m sets diffuse color
3mFOGLEN 0m sets the foglength
3mIMTEXTURE 0m adds a Imagine texture
3mREFEXP 0m sets the specular reflection exponent
3mREFLECT 0m sets the specular reflectivity
3mREFRINDEX 0m sets the index of refraction
3mSPECTRANS 0m sets the specular transmission
3mSPECULAR 0m sets the specular color
3mTRANSEXP 0m sets the specular transmission exponent
3mTRANSLUC 0m sets the specular transmittance
3mTRANSPAR 0m sets the diffuce transmittance
0m1mAMBIENT0m
0m1mTemplate:0m
COLOR/A
0m1mArguments:0m
STRING COLOR
color
0m1mDescription:0m
Sets the ambient color of surface. Determines the color of the object in
sections, which are in shadow.
0m1mDefault:0m
AMBIENT [255,255,255]
0m1mBRUSH0m
0m1mTemplate:0m
NAME/A,TYPE/A,WRAP/A,POS/A,ALIGN/A,SIZE/A,REPEAT/S,MIRROR/S,SOFT/S,ACTOR
0m1mArguments:0m
STRING NAME
filename of brush
KEYWORD TYPE [COLOR|REFLECT|FILTER|ALTITUDE|SPECULAR]
type of brush
KEYWORD WRAP [FLAT|WRAPX|WRAPY|WRAPXY]
brush wrapping method
VECTOR POS
position
VECTOR ALIGN
alignment
VECTOR SIZE
size of brush
KEYWORD REPEAT
if set, brush is repeated like a tile
KEYWORD MIRROR
if set, brush is mirrord (when REPEAT is specified)
KEYWORD SOFT
if set, brush color is interpolated softly
STRING ACTOR
name of actor
0m1mDescription:0m
Adds a brush to surface definition. A brush is a bitmap which is wrapped
around an object. The specified file will be searched for in the current
directory. If it wasn't found there and a 3mBRUSHPATH0m
be searched there.
If an error occures the command returns an error string. Supported formats
are: IFF-ILBM, PNG, TGA and Datatypes.
Constants for type:
COLOR
Replaces the surface color of the object with the image (sets 3mDIFFUSE0m and
3mAMBIENT0m color).
REFLECT
Map covers the surface and reflects environment (see 3mREFLECT0m)).
FILTER
Uses the white color to pass colors and the black area to hold back color
with a variance between two colors (like with 3mTRANSPAR0m).
ALTITUDE
The red values of the brush are used to give the surface an appearence of
bumpiness.
SPECULAR
The rgb values set the specular color of the surface (see 3mSPECULAR0m).
Constants for wrap :
FLAT
The brush is projected to X-Y plane, the axis is in the middle of the
brush area, length is the distance from the middle to the border.
WRAPX
The brush is wrapped around the x-axis, like on a cylinder. The left edge
of the brush begins at the posititve X axis and wraps the brush around
the cylinder from 'west' to 'east'.
WRAPY
Same as WRAPX, but wrapping is around the y-axis.
WRAPXY
Wrapping both: around X and Y axis. It is assumed, that the object is a
sphere. The Y axis is the north/south pole of the spherical mapping. The
left edge of the brush begins at the positive X axis and wraps the brush
around the sphere from 'west' to 'east'. The brush covers the sphere
exactly once.
0m1mExample:0m
BRUSH "earth.iff" COLOR, WRAPXY <0,0,0> <0,0,0> <0.1,0.1,0.1>
0m1mDIFFTRANS0m
0m1mTemplate:0m
COLOR/A
0m1mArguments:0m
COLOR COLOR
color
0m1mDescription:0m
Sets the diffuse transmission color of surface. Same as diffuse reflection,
but only used if the lightsource is on opposite side of surface. Only
applied if tranlucency is not set to zero.
0m1mDefault:0m
DIFFTRANS [0,0,0]
0m1mDIFFUSE0m
0m1mTemplate:0m
COLOR/A
0m1mArguments:0m
COLOR COLOR
color
0m1mDescription:0m
Sets the diffuse color of surface. The diffuse reflection falls off as
the cosine of the angle between the normal and the ray to the light.
Diffuse reflection determines the main color of the object (color in
Imagine).
0m1mDefault:0m
DIFFUSE [255,255,255]
0m1mFOGLEN0m
0m1mTemplate:0m
VALUE/A
0m1mArguments:0m
FLOAT VALUE/A
foglength
0m1mDescription:0m
Sets the foglength of the surface. The fog color is set with 3mTRANSPAR0m.
0m1mDefault:0m
FOGLEN 0
0m1mIMTEXTURE0m
0m1mTemplate:0m
NAME/A,POS,ALIGN,SIZE,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,ACTOR
0m1mArguments:0m
STRING NAME
name of Imagine texture file
VECTOR POS
position
VECTOR ALIGN
alignment
VECTOR SIZE
size of texture axis
FLOAT P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16
texture parameters
STRING ACTOR
name of actor
0m1mDescription:0m
Adds a Imagine texture to surface
0m1mDefault:0m
defaults are taken from texture if not all paramters are given
0m1mExample:0m
IMTEXTURE "checker.itx" <0.1,0.1,0.1> <0,0,0> <2,2,2>
0m1mNEWSURFACE0m
0m1mTemplate:0m
NAME/A,BRIGHT/S
0m1mArguments:0m
STRING NAME
name
KEYWORD BRIGHT
if set, the brightness of the surface is everywhere the same
0m1mDescription:0m
Defines a new surface.
0m1mREFEXP0m
0m1mTemplate:0m
VALUE/A
0m1mArguments:0m
FLOAT VALUE
specular reflection exponent
0m1mDescription:0m
Sets the specular reflection exponent of surface. Determines the size of
the specularly reflected highlights, the higher the smaller the highlight
(hardness in Imagine).
0m1mDefault:0m
REFEXP 12.
0m1mREFLECT0m
0m1mTemplate:0m
COLOR/A
0m1mArguments:0m
COLOR COLOR
color
0m1mDescription:0m
Sets the specular reflectivity of surface
0m1mDefault:0m
REFLECT [0,0,0]
0m1mREFRINDEX0m
0m1mTemplate:0m
VALUE/A
0m1mArguments:0m
FLOAT VALUE
index of refraction
0m1mDescription:0m
Sets the index of refraction of surface. Determines how the ray is refracted
through transparent objects, the higher the more (index of refraction in
Imagine).
0m1mDefault:0m
REFRINDEX 1.
0m1mExamples:0m
MATERIAL Index
-------------------------------------
Vacuum ...................... 1.00000 (exactly)
Air (STP).................... 1.00029
Acetone ..................... 1.36
Alcohol ..................... 1.329
Amorphous Selenium .......... 2.92
Calspar1 .................... 1.66
Calspar2 .................... 1.486
Carbon Disulfide ............ 1.63
Chromium Oxide .............. 2.705
Copper Oxide ................ 2.705
Crown Glass ................. 1.52
Crystal ..................... 2.00
Diamond ..................... 2.417
Emerald ..................... 1.57
Ethyl Alcohol ............... 1.36
Flourite .................... 1.434
Fused Quartz ................ 1.46
Heaviest Flint Glass ........ 1.89
Heavy Flint Glass ........... 1.65
Glass ....................... 1.5
Ice ......................... 1.309
Iodine Crystal .............. 3.34
Lapis Lazuli ................ 1.61
Light Flint Glass ........... 1.575
Liquid Carbon Dioxide ....... 1.20
Polystyrene ................. 1.55
Quartz 1 .................... 1.644
Quartz 2 .................... 1.553
Ruby ........................ 1.77
Sapphire .................... 1.77
Sodium Chloride (Salt) 1 .... 1.544
Sodium Chloride (Salt) 2 .... 1.644
Sugar Solution (30%) ........ 1.38
Sugar Solution (80%) ........ 1.49
Topaz ....................... 1.61
Water (20 C) ................ 1.333
Zinc Crown Glass ............ 1.517
0m1mSPECTRANS0m
0m1mTemplate:0m
COLOR/A
0m1mArguments:0m
COLOR COLOR
color
0m1mDescription:0m
Sets the specular transmission color of surface. Same as specular
reflection, but only used if the lightsource is on opposite side of
surface. Only applied if tranlucency is not 0.
0m1mDefault:0m
SETSPECTRANS [255,255,255]
0m1mSPECULAR0m
0m1mTemplate:0m
COLOR/A
0m1mArguments:0m
COLOR COLOR
color
0m1mDescription:0m
Sets the specular color of surface. Specularly reflected highlights fall
off as the cosine of the angle between the reflected ray and the ray to the
light source (specular in Imagine).
0m1mDefault:0m
SPECULAR [255,255,255]
0m1mTRANSEXP0m
0m1mTemplate:0m
VALUE/A
0m1mArguments:0m
FLOAT VALUE
specular transmission exponent
0m1mDescription:0m
Sets the specular transmission exponent of surface. Same as specular
reflection exponent, but only used if the lightsource is on opposite
side of surface.
0m1mDefault:0m
TRANSEXP 12.
0m1mTRANSLUC0m
0m1mTemplate:0m
VALUE/A
0m1mArguments:0m
FLOAT VALUE
specular transmittance
0m1mDescription:0m
Sets the specular transmittance of surface
0m1mDefault:0m
TRANSLUC 0
0m1mTRANSPAR0m
0m1mTemplate:0m
COLOR/A
0m1mArguments:0m
COLOR COLOR
color
0m1mDescription:0m
Sets the diffuse transmittance of surface
0m1mDefault:0m
TRANSPAR [0,0,0]
0m1mAREXX-COMMANDS FOR ANIMATION CONTROL0m
3mALIGNMENT0m sets alignment
3mNEWACTOR 0m creates a new actor
3mPOSITION 0m sets position
3mSIZE 0m sets size
0m1mALIGNMENT0m
0m1mTemplate:0m
FROM/A,TO/A,ALIGN/A,TYPE
0m1mArguments:0m
FLOAT FROM,TO
time interval
VECTOR ALIGN
alignment at the end of the interval
KEYWORD TYPE [LINEAR]
interpolation type (currently only linear)
0m1mDescription:0m
Sets the alignment of the object. At time to, the actor will have this
alignment.
'TYPE' can be one of the following identifiers:
LINEAR the object moves on a straight line between the positions
SPLINE the object moves on a spline curve between the positions. (NOT
IMPLEMENTED YET)
0m1mNEWACTOR0m
0m1mTemplate:0m
NAME/A,POS,ALIGN,SIZE
0m1mArguments:0m
STRING NAME
name of actor
VECTOR POS
initial position of actor
VECTOR ALIGN
initial alignment (in degrees)
VECTOR SIZE
initial size
0m1mDescription:0m
Creates a new actor. Usually a NEWACTOR definition is followed by one or more
POSITION, ALIGNMENT, SIZE commands which define the properties of the actor
at a certain time.
For more information on NEWACTOR, please click 3mhere0m.
0m1mDefault:0m
NEWACTOR ??? <0,0,0> <0,0,0> <1,1,1>
0m1mPOSITION0m
0m1mTemplate:0m
FROM/A,TO/A,POS/A,TYPE
0m1mArguments:0m
FLOAT FROM,TO
time interval
VECTOR POS
position at the end of the interval
KEYWORD TYPE [LINEAR]
interpolation type (currently only linear)
0m1mDescription:0m
Sets the position of the object. At time to, the actor will be at this
position.
'TYPE' can be one of the following identifiers:
LINEAR the object moves on a straight line between the positions
SPLINE the object moves on a spline curve between the positions. (NOT
IMPLEMENTED YET)
0m1mSIZE0m
0m1mTemplate:0m
FROM/A,TO/A,SIZE/A,TYPE
0m1mArguments:0m
FLOAT FROM,TO
time interval
SIZE
size at the end of the interval
KEYWORD TYPE [LINEAR]
interpolation type (currently only linear)
0m1mDescription:0m
Sets the size of the object. At time to, the actor will have this size.
'TYPE' can be one of the following identifiers:
LINEAR the object moves on a straight line between the positions
SPLINE the object moves on a spline curve between the positions. (NOT
IMPLEMENTED YET)
0m1mWHAT IS AN ACTOR?0m
The statement:
NEWACTOR name, position, alignment, size
defines a "virtual object" that can be associated with "real" objects,
including the Camera and the Lights objects. Position, alignment, and
size values are the initial values of an actor.
The object that is associated with a named actor behaves exactly like the
actor. When the actor is sized, rotated, or moved; the associted object is
sized, rotated, or moved accordingly. It is as though the actor and the
object that is associated with it are connected by a rod.
While the coordinates of the object that is associated with an actor are
always defined in an absolute way in reference to the set world; its
movements - when associated with an actor - takes place with respect to
the coordinates of the actor. The coordinates of the actor are defined in
the NEWACTOR statment and can have default values.
The position, alignment, and size values that follow the NEWACTOR statement
are the final values of an actor. By defining time from and to values, a time
increment is defined by which the actor is resized, rotated, or moved from
the initial values to the final values. By associating objects to an actor,
and rendering a picture at a particular time, or through a period of time,
animation and/or motion blur effects are achieved.
0m1mAREXX-ERRORS0m
These values are returned when something went wrong, you can get the
error string with the command 3mGETERRORSTR0m.
0m1mApplication and parser errors0m
Here are the errors returned from the command parser and the application
itself.
100 Wrong screen resolution
Both components of the screen resolution have to be higher than one.
101 Not enough memory
Allocation of memory failed.
102 Limitations of demo version reached
The demo version is limited to a resolution of 160x128.
103 Unknown brush mapping type
You specified a unknown mapping method for the 3mBRUSH0m command.
104 Unknown brush wrapping method
You specified a unknown wrapping method for the 3mBRUSH0m command.
105 Invalid time intervall
One component of a time intervall was negative or the beginning time
was later than the end.
106 Unknown interpolation method
You specified a unknown interpolation method for the 3mPOSITION0m,
3mALIGNMENT0m or 3mSIZE0m command.
107 No picture renderd
There is no picture for 3mSAVEPIC0m to save because you renderd none
or called 3mCLEANUP0m before.
108 Can't open screen
The 3mDISPLAY0m command was unable to open the screen
(!!! THIS COMMAND ISN'T RELEASED IN THIS VERSION YET !!!).
109 Can't open raystorm.library (Only one copy of RayStorm can run at a time)
RayStorm failed to open raystorm.library
110 Can't open intuition.library
RayStorm failed to open intuition.library (at least version 37 is
needed)
111 Can't open window
RayStorm failed to open the window.
112 Can't open muimaster.library
RayStorm failed to open muimaster.library (at least version 8 is
needed)
113 Invalid vector definition
The specified vector has the wrong format (must be '<x,y,z>').
114 Invalid color definition
The specified color has the wrong format (must be '[r,g,b]').
115 Invalid region definition
The specified region is out of range.
116 No light defined
You tried to add lens flares or a light star and there is no previously
defined light source.
0m1mInternal errors0m
This are errors of the renderer.
1 Not enough memory
Allocation of memory failed.
2 Limitations of demo version reached
The demo version is limited to a resolution of 160x128.
3 Wrong screen resolution
Both components of the screen resolution have to be higher than one.
4 Error in triangle definition
It's impossible to generate a triangle with the specified coordinates
(see 3mTRIANGLE0m).
5 The view and up directions are identical?
You specified a view-up-vector for the 3mCAMERA0m command which is identical
to the view direction.
6 Not enough memory for screen buffer
The allocation of the screen buffer failed.
8 Can't open Imagine texture file
RayStorm failed to open the specified Imagine texture file, check
filename and path.
9 Can't open brush file
RayStorm failed to open the specified brush file, check
filename and path.
10 Error initializing Imagine texture
An error occured as RayStorm tried to initialize a Imagine texture.
11 Can't open picture
RayStorm failed to open the specified picture file, check filename
and path.
12 Error reading picture
An error occured while RayStorm read a picture file.
13 Can't open picture type file ('modules/picture/types')
RayStorm failed to open the typefile. The typefile is needed to
identify the filetypes of the pictures. RayStorm was unable to open
the file 'modules/picture/types'.
14 Error reading picture type file
An error occured while RayStorm read the picture type file, maybe the
file is damaged.
14 Unknown picture format
RayStorm was unable to recognize the format of the picture file.
16 An error occcured while invoking picture handler
The used picture handler returned a error.
17 Can't open object
RayStorm failed to open the specified object file, check filename
and path.
18 Error reading object
An error occured while RayStorm read a object file.
19 Can't open object type file ('modules/object/types')
RayStorm failed to open the typefile. The typefile is needed to
identify the filetypes of the objects. RayStorm was unable to open
the file 'modules/object/types'.
20 Error reading object type file
An error occured while RayStorm read the object type file, maybe the
file is damaged.
21 Unknown object format
RayStorm was unable to recognize the format of the object file.
22 An error occcured while invoking object handler
The used object handler returned a error.
23 Actor not defined
The specified actor name does not exist.
24 Surface not defined
The specified surface name does not exist.
25 Depth of octree too big (max. 6)
The octree depth is limited to a depth of 6.
26 Antialiasing value too big (max. 8)
The value of the 3mANTIALIAS0m command is limited to 8.
27 Invalid time intervall
One component of a time intervall was negative or the beginning time
was later than the end.
28 No picture renderd
There is no picture for 3mSAVEPIC0m to save because you renderd none
or called 3mCLEANUP0m before.
29 Distribution value too big (max. 8)
The value of the 3mDISTRIB0m command is limited to 8.
30 Wrong error number
The error number for 3mGETERRORSTR0m is out of range.
31 Unknown Parameter
A RSI-function was called with an unknown parameter (should nerver occur).
0m1mEXAMPLES0m
We have included several demos in the directories 'arexx' and 'examples'
to show how to use RayStorm.
In the 'arexx' directory are examples scripts which show the usage of
RayStorm with ARexx. Start them simply by typing 'rx ???.ray' in a shell
(???.ray is the name of the script).
In the 'examples' directory are C-programs which show the usage of
RayStorm directly with a program. They can only be run from a shell.
These programs are producing a couple of pictures no animation, which must
be glued together with a utility like MainActor.
0m1mTUTORIALS0m
If you use RayStorm for the first time, then it would be a good idea to do
the following tutorials:
3mSimple scene 0m
3mBouncing ball0m
3mMotion blur 0m
0m1mTutorial: Simple scene0m
Now we will create a very famous scene. A sphere over a checkerboard! Ok, it
may be boring, but it's good for the absolute beginner to get an
impression of building a scene.
Here we go:
1. In the drawer 'ARexx' of the RayStorm directory there is a file named
'default.ray'. This is a default form for RayStorm ARexx scripts. You can
use this form to write your own scripts.
We'll use this file as a default for our animation script. Copy this file
to the file 'simple.ray'. After this load the file 'simple.ray' to your
favorite text editor (e.g GoldEd or CygnusEd).
2. To view the scene, we need a camera. Insert after the line 'address
RAYSTORM' the line:
0m3m '3mSETCAMERA0m <6,1.5,-1.5> <0,0,0> <0,1,0>'0m
This sets the camera to position <6,1.5,-1.5>. The camera points to
<0,0,0> and the view-up vector is <0,1,0>. Note that you don't have to
specify every single parameter. Every command has default values. Refer
to the description of a command to find out the default values.
3. Nothing can be seen without a lightsource.
Go to the next line and type:
0m3m '3mPOINTLIGHT0m <0,50,0> [255,255,255] SHADOW'0m
The sphere is illuminated from above with white light.
4. Before placing the objects in the scene, you have to define their
surfaces.
Insert this line:
0m3m '3mNEWSURFACE0m planesurf'0m
This creates a surface with name planesurf. The plane has a checkered
surface, so insert:
0m3m '3mIMTEXTURE0m /textures/checker.itx <0.1,0.1,0.1> <0,0,0> <2,2,2>'0m
5. That was the plane texture. Let 's go over to sphere texture.
Add:
0m3m '3mNEWSURFACE0m spheresurf'0m
The sphere has a mirrored surface. To simulate a perfect mirror, type
0m3m '3mREFLECT0m [255,255,255]'0m
6. Now we can add the objects to the scene:
0m3m '3mSPHERE0m spheresurf <0,0.5,0> 1'0m
This creates a sphere on position <0,0.5,0> and radius 1.
Add the plane:
0m3m '3mPLANE0m planesurf'0m
The default values for the position and the normal vector fit to our
scene, so we can take them over.
7. Let's make an end to the definitions and render the scene!
Type:
0m3m '3mSTARTRENDER0m'0m
8. Finally we may not forget to save the picture, so add:
0m3m '3mSAVEPIC0m simple.iff'0m
which will save the renderd picture in the current directory as a
IFF-ILBM file.
The last step is to free all the memory with the command 'CLEANUP'. Add:
0m3m 3mCLEANUP0m'0m
9. Start the script from a shell-window with the sequence 'rx simple.ray'.
RayStorm will now generate your picture. When RayStorm finished the work
start your favourite viewer-program, load the file and have a look at
it.
Looks very monochrome!!
To make the world colorful, we make a red checker and set the sky to
blue. A blue sky can be done by setting the world's background color.
10. Before 'SETCAMERA' insert:
0m3m '3mSETWORLD0m [30,30,255]'0m
Add
0m3m '3mDIFFUSE0m [155,0,0]'0m
to the surface planesurf (this defines one checker color), the other one
must be set in the 'IMTEXTURE' command, so change it to
0m3m '3mIMTEXTURE0m /textures/checker.itx <0.1,0.1,0.1> <0,0,0> <2,2,2> 255 0 0'0m
(Note that '255 0 0' describes a color, but is not embedded in < >,
because the checker color belongs to the texture parameters which are
all floats.)
11. Render the scene once again, and view it.
That's the end of the tutorial! Make some changes to the scene file and
play around with the parameters to see their effects.
0m1mTutorial: Bouncing ball0m
The goal of this tutorial is to show you how to generate little animations.
At the end of this tutorial you'll have a animation where the earth rotates
and bounces on a rotating plane with a white checker texture on the top and
a red checker on the bottom. If you have a fast computer you can also
generate the animation with motion blur.
O.k. here we go:
1. In the drawer 'ARexx' of the RayStorm directory there is a file named
'default.ray'. This is a default form for RayStorm ARexx scripts. You can
use this form to write your own scripts.
We will use this file as a default for our animation script. Copy this file
to the file 'bounce.ray'. After this load the file 'bounce.ray' to your
favorite text editor (e.g GoldEd or CygnusEd).
2. First we define some values: the acceleration of the ball and the amount
of frames to generate.
RayStorm has three commands to set the paths where it searchs the files
it needs. We use a brush for the surface of the ball and a texture for
the surface of the ground.
To do this we have to insert after the command 'ADDRESS RAYSTORM' the
lines:
0m3m g = .2
frames = 17
'3mBRUSHPATH0m /brushes'
'3mTEXTUREPATH0m /textures'0m
It's the same if you write the commands in upper case or lower case.
But it's important to enclose all commans in quotes because ARexx tries
to interpret the line before it sends it. It may happen that the line is
changed and RayStorm don't do the things you want.
3. Next we set the screen resolution. For the first experiments we choose
a low resolution of 160x128 pixels. Insert the line:
0m3m '3mSETSCREEN0m 160 128'0m
4. Now we set the camera parameters. The first three values determine the
position of the camera. We want to place it so that we can see the ball
all over the time. The next values set the viewpoint of the camera, this
is the point the camera aims to. The next values determine the view up
vector. And the last two values determine the field of view. To get a
pixel aspect of 1:1 we have to set them to 25 and 20 degree.
0m3m '3mSETCAMERA0m <0,10,40> <0,5,0> <0,1,0> 25 20'0m
5. We want to have a bright blue background for our animation. The
background and the global ambient color is set with the 'SETWORLD'
command. We want to set the ambient color to a dark gray, if this color
is to bright the scene will look washed out and the objects appear flat.
Insert the line:
0m '3mSETWORLD0m [10,30,200] [10,10,10]'0m
6. The illumination is an important part of a scene. We want to place a
pointlight near the camera. Add the line:
0m '3mPOINTLIGHT0m <5,10,50>'0m3m
7. Now we define the actor for the plane. We want to rotate it around the
Z-axis. Insert the lines:
0m3m '3mNEWACTOR0m groundactor'
'3mALIGNMENT0m 0 ' frames+2 ' <0,0,360>'0m
7. Now we define the surface for the plane and the plane itself. We make it
a little reflective and apply a checker texture. The surface 'groundtop'
is for the top of the plane and the surface 'groundbottom' is for the
bottom of the surface. The plane itself consits of four triangles. Two
fo the top and two for the bottom. Insert the lines:
0m3m '3mNEWSURFACE0m groundtop'
'3mDIFFUSE0m [255,255,255]'
'3mSPECULAR0m [0,0,0]'
'3mREFLECT0m [50,50,50]'
'3mIMTEXTURE0m checker.itx <0,-1,0> <0,0,0> <10,10,10> ACTOR groundactor'
'3mNEWSURFACE0m groundbottom'
'3mDIFFUSE0m [255,0,0]'
'3mSPECULAR0m [0,0,0]'
'3mREFLECT0m [50,50,50]'
'3mIMTEXTURE0m checker.itx <0,-1,0> <0,0,0> <1.5,1.5,1.5> ACTOR groundactor'
'3mTRIANGLE0m groundtop <-2,0,-2> <2,0,-2> <2,0,2> ACTOR groundactor'
'3mTRIANGLE0m groundtop <-2,0,-2> <-2,0,2> <2,0,2> ACTOR groundactor'
'3mTRIANGLE0m groundbottom <-2,-.01,-2> <2,-.01,-2> <2,-.01,2> ACTOR groundactor'
'3mTRIANGLE0m groundbottom <-2,-.01,-2> <-2,-.01,2> <2,-.01,2> ACTOR groundactor'0m
8. Next we define the motion of the ball. It starts at a height of 10 and
accelerates until it bounces on the plane, changes it's direction and
the motions ends as the ball is back at he start point. Additional the
ball rotates around the Y-axis. Add the following sequence to your script:
0m3m speed = -g
pos = 10
'3mNEWACTOR0m ballactor <0,'pos',0>'
do i=0 to frames
'3mPOSITION0m ' i i+1 '<0,'pos',0>'
pos = pos+speed
if pos<=1 & speed<0 then
speed = -speed
else
speed = speed-g
end
'3mALIGNMENT0m 0 ' frames+2 ' <0,360,0>'0m
9. Now we define the surface for the ball and the ball itself. The only thing
we must do is to map a earth styled brush map to a sphere. To reach this
goal the position of the brush must be set to the middle of the sphere
and the size must be small enough to be completely inside the sphere.
This are the lines to define the ball:
0m3m '3mNEWSURFACE0m ball'
'3mBRUSH0m earth.iff COLOR WRAPXY <0,10,0> <0,0,0> <.1,.1,.1> ACTOR ballactor'
'3mSPHERE0m ball <0,10,0> 1 ACTOR ballactor'0m
10. If your computer is fast enough you can insert the follwing lines:
0m3m '3mANTIALIAS0m 2'
'3mDISTRIB0m 2'0m
'ANTIALIAS' improves the quality of the picture; 2 or 3 are normal values,
higher values don't improve the quality significant.
A value higher than one for 'DISTRIB' switches {"motion blur" link Motion Blur} on.
11. At this the we have finished the definitions and now can render the single
frames. If youn want the reflections of the ball on the plane you have
to delete the keyword 'QUICK', because RayStorm renders no reflections in
quick mode. The frame time is set with 'FROM' and 'TO'. We save the frames
as IFF-ILBM pictures with the names 'bounce0001.iff' ... 'bounceXXXX.iff'.
The last step is to free all the memory with the command 'CLEANUP'. Add
these lines:
0m3m do i=0 to frames
'3mSTARTRENDER0m QUICK FROM 'i' TO 'i+1
'3mSAVEPIC0m bounce' || RIGHT(i,4,0) || '.iff'
end
'3mCLEANUP0m'0m
12. Start the script from a shell-window with the sequence 'rx bounce.ray'.
RayStorm will now generate your frames. When RayStorm finished the work
you must glue the pictures together to get the animation.
That's all. Have fun!
0m1mTutorial: Motion blur0m
In this tutorial we show you how to make animations and how to use motion
blur.
To animate objects we need ACTORs. An ACTOR can be seen as a virtual object
which can have a certain position/alignment/size at a certain time. ACTORs can
be used for keyframe animation by giving control points which RayStorm can
interpolate (only linear for now. Spline interpolations will be implemented
later).
You can assign an ACTOR to one or more real objects. An object with an actor
assigned to it will follow all actions the actor does. Let's take the sphere
from the second tutorial and move it to direction of the camera.
Type following:
0m3m'3mSETCAMERA0m <6,1.5,-1.5> <0,0,0><0,1,0>'
'3mPOINTLIGHT0m <30,50,30> [255,255,255] SHADOW'0m
you can add POSITION, ALIGNMENT and SIZE commands after NEWACTOR
(similar to the surface commands after NEWSURFACE)
0m3m'3mNEWACTOR0m actor'
'3mPOSITION0m 0 1 <3,0,0.4>'
'3mNEWSURFACE0m planesurf'
'3mDIFFUSE0m <255,30,30>'
'3mIMTEXTURE0m "checker.itx" <0.1,0.1,0.1> <0,0,0> <2,2,2> 155 25 0'
'3mNEWSURFACE0m spheresurf'
'3mREFLECT0m <255,255,255>'
'3mSPHERE0m spheresurf <0,1,0> 0.7 actor'
'3mPLANE0m planesurf'0m
You can make an animation by a series of STARTRENDER/SAVEPIC combinations. Our
little movie shall consist of 6 frames, so we will subdivide our time intervall
(1 unit) and make a photo every 0.2 time units. The STARTRENDER command has the
option to render a picture within a certain time intervall. That can be
compared with the shutter time of a real camera. The camera of RayStorm records
all movements of the objects in the scene within that time intervall which
results in a blurred scene. At the beginning we do no motion blur, so we set
the start and the end time to the same value. (Which means no shutter time).
Add this code and execute it:
0m3mdo i=0 to 1 step 0.2
'3mSTARTRENDER0m QUICK FROM 'i' TO 'i
'3mSAVEPIC0m sphere' || RIGHT(i*5,4,0) || '.iff'
end
'3mCLEANUP0m'0m
You can make a movie out of it using an animator program such as MainActor.
Now we introduce one of the advanced features of RayStorm: Motion Blur
Replace the commands above by the following lines:
0m3m/* when doing motion blur you *MUST* add the distrib command +/
'3mDISTRIB0m 3'
/* shutter time is 0.2 */
do i=0 to 0.8 step 0.2
'3mSTARTRENDER0m QUICK FROM 'i' TO 'i+0.2
'3mSAVEPIC0m sphere' || RIGHT(i*5,4,0) || '.iff'
end
'3mCLEANUP0m'0m
For each frame, the camera opens the shutter 0.2 time units long and records
what's happening. As you can see, an animation with motion blur gives a better
visual effect.
Again feel free to change the parameters.
0m1mTEXTURES0m
Textures are mathematically generated patterns which can be applied to the
surface of an object.
There are several textures in the directory 'textures'.
3m Bump 0m
3m Checker 0m
3m Linear 0m
3m Marble 0m
3m Radial 0m
3m Stars 0m
3m Wood 0m
0m1mBUMP0m
This texture applies bumps to the surface.
Size of texture determines size of the bumps.
0m1mParameters:0m
1: X bump size
2: Y bump size
3: Z bump size
set the 'depth' of the bumps.
Example:
sphere with radius 1
0m3mIMTEXTURE bump.itx <0,0,0> <0,0,0> <.3,.3,.3> 1 1 10m
3mPicture0m
0m1mCHECKER0m
This texture applies thw ell known checker pattern to the surface.
0m1mAttention!
If you apply a checker texture to a plane, the plane may not be at the same
position on which the checker changes its color. Otherwise you get a noisy
texture due to rounding errors.0m
0m1mParameters:0m
1: Color Red
2: Color Green
3: Color Blue
Color of the checkers, other color is taken from object.
4: Reflect Red
5: Reflect Green
6: Reflect Blue
Reflect color of the checkers.
7: Filter Red
8: Filter Green
9: Filter Blue
Filter color of the checkers.
0m1mExample:0m
0m3mIMTEXTURE "checker.itx" <0,0.1,0> <0,0,0> <2,2,2> 255 0 00m
3mPicture0m
0m1mLINEAR0m
This texture varies the color of the object in the y-direction of the
texture.
0m1mParameters:0m
1: Color Red
2: Color Green
3: Color Blue
color to interpolate to.
4: Reflect Red
5: Reflect Green
6: Reflect Blue
reflection to interpolate to.
7: Filter Red
8: Filter Green
9: Filter Blue
filter to interpolate to.
0m1mExample:0m
0m3mIMTEXTURE "linear.itx" <0,0.1,0> <0,0,0> <2,2,2> 0 0 2550m
3mPicture0m
0m1mWOOD0m
This texture applies a wood like texture to the surface.
Size of texture determines size of wood.
0m1mParameters:0m
1: Color Red
2: Color Green
3: Color Blue
Color. Other color is taken from object.
4: Reflect Red
5: Reflect Green
6: Reflect Blue
Reflection color.
7: Filter Red
8: Filter Green
9: Filter Blue
Filter color.
10: Octave
The higher the octave the noisier are the wood rings.
11: Frequency
The higher the frequency the smaller the wood rings.
0m1mExample:0m
cube with size 2
0m3mIMTEXTURE wood.itx <0,0,0> <0,0,0> <1,1,1> 255 255 50 0 0 0 0 0 0 2 40m
3mPicture0m
0m1mMARBLE0m
This texture applies a marble like texture to the surface.
Size of texture determines size of bumps.
0m1mParameters:0m
1: Color Red
2: Color Green
3: Color Blue
Color. Other color is taken from object.
4: Reflect Red
5: Reflect Green
6: Reflect Blue
Reflection color.
7: Filter Red
8: Filter Green
9: Filter Blue
Filter color.
10: Octave
The higher the octave the noisier is the texture.
0m1mExample:0m
cube with size 2
0m3mIMTEXTURE marble.itx <0,0,0> <0,0,0> <.5,.5,.5> 150 50 50 0 0 0 0 0 0 70m
3mPicture0m
0m1mRADIAL0m
This texture varies the color of the object radial around the texture axis.
0m1mParameters:0m
1: Start radius
Interploation start radius.
2: End radius
Interploation end radius.
3: Color Red
4: Color Green
5: Color Blue
Color to interpolate to.
6: Reflect Red
7: Reflect Green
8: Reflect Blue
Reflection to interpolate to.
9: Filter Red
10: Filter Green
11: Filter Blue
Filter to interpolate to.
0m1mExample:0m
0m3mIMTEXTURE "radial.itx" <0,0,0> <0,0,0> <1,1,1> 1 2 255 0 00m
3mPicture0m
0m1mSTARS0m
This texture applies randomly stars to the surface. Cannot be used in
animations!
0m1mParameters:0m
1: Color Red
2: Color Green
3: Color Blue
Color of the stars.
4: Density
Star density. The higher the more stars (0. - 1.).
0m1mExample:0m
0m3mIMTEXTURE "stars.itx" <0,0,0> <0,0,0> <1,1,1> 255 255 255 0.10m
3mPicture0m
0m1mKNOWN BUGS0m
0m1mDISCLAIMER0m
THERE IS NO WARRANTY FOR THIS PROGRAM TO THE EXTENT PERMITTED BY APPLICABLE
LAW. EXCEPT WHERE OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDER AND/OR
OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.
SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY
SERVICING, REPAIR OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL
ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY REDISTRIBUTE THE PROGRAM
AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR
INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR
DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES
OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
0m1mCOPYRIGHT0m
The RayStorm package is Copyright 1995,96 by Andreas Heumann and Mike Hesser.
All Rights Reserved. It is released under the concept of `Shareware'.
The archive of RayStorm may only be distributed in unmodified form. No files
may be added, changed or removed. You may not charge for this archive, other
than the cost of the media and duplication fees. Distribution is allowed in
all forms, such as BB systems, floppy or compact disks, and ftp sites.
0m1mCREDITS0m
We want to thank the following persons:
- Bernhard Moench - chairman of Plasma Pictures (a great Amiga club)
Address:
Plasma Pictures
Reality and Imagination!
Bernhard Moench
Regensburger Strasse 28c
10777 Berlin
GERMANY
- Stephan Dorenkamp - for testing
- Maan Hamze - for testing, hundrets of suggestions and bugreports...
... and many many E-Mails
- Klaus Melchior for his listtree class
- Stefan Stunz for MUI
- Thanks to all registrated users for the support of the shareware concept.
0m1mREGISTER0m
If you like RayStorm use the registration programm to register.
Fill out the registration form and press the 'Print' button.
If the printer is installed correctly, the registration is printed out.
You can get information about the current agreements by pressing the 'Info'
button.
0m1mAUTHORS0m
For bug reports, comments, suggestions ... you can contact us at the
following addresses (E-mail prefered).
Amiga-version:
Andreas Heumann
E-mail: calvin@sol.wohnheim.uni-ulm.de (or heumann@hugo.rz.fh-ulm.de)
S-mail: Heilmeyersteige 105
89075 Ulm
Germany
PC-version:
Mike Hesser
E-mail: calvin@sol.wohnheim.uni-ulm.de
S-mail: Heilmeyersteige 105
89075 Ulm
Germany
0m1mPC-VERSION0m
The PC version is available on the Internet from our 3mhomepage0m.
0m1mHISTORY0m
3mRayStorm Scenario 0m
3mRayStorm Script 0m
3mRayStorm Raytracer0m
0m1mHISTORY0m
version 1.0b (27-August-96)
- initial release.
version 1.1 (04-October-96)
- save and load materials in attribute requester
- create cube, sphere, plane, tube, cone and torus mesh objects
- fixed bug with color requesters (colors changed every call)
- string gadgets now advance to next/prev gadget when return is pressed
- improved zooming with the mouse
- added enable button for render area
- fixed problems with KS-versions less than 3.0 (<39)
- key 't' opens settings requester
- added new preview resolutions (NTSC 80x50,PAL 80x64,VGA 80x60)
- if more than one object is selected the object for attributes can be
selected by the browser
- implemented two browser modes
- added center view with 'R-Amiga - .'
- joined settings and transform requester
- several bugfixes
- improved object scaling with mouse
- can now scale external objects
version 1.2 (29-November-96)
- forgot to scale child objects of external objects
- added ok button to render requester
- added 3mcamera to viewer0m
- added hierarchical object browser
- ask for rendering of scenes with no light sources
- bugfix: it was impossible to track and to set the opening angle of a
spotlight
- convert external to scene objects
- added RayStorm object file format (RSOB)
- fixed problem with vertical stripes with 020-version
- fixed problem with screen update
- coordinate display even if no object is translated
- focal distance of camera can automatically be set to camera-track distance
- added preview to attributes requester
- improved color selection for rendering preview window
- added show and save button to registration program
- added some materials
- added lens effects (flares, light star)
0m1mHISTORY0m
version 1.02 (16-August-95)
- added BRIGHT-flags for surface
- deleted TRANSATTU
version 1.081 (08-October-95)
- added listview for history
version 1.13 (01-November-95)
- now more than one path with PATH-commands possible
version 1.16 (09-January-96)
- added 'SOFTSHADOW' to 'DISTRIB'
- added 'FALLOFF' for 'POINTLIGHT' and 'SPOTLIGHT'
version 1.2 (29-February-96)
- bugfix 'ANTIALIAS' command: parameter CONTRIB produced error 30
version 1.22 (25-April-96)
- added 'SURFACE' to 'LOADOBJ' to replace objects surface with own surface
version 1.26 (04-October-96)
- fixed a bug which caused the program to crash on exit
version 1.3 (29-November-96)
- added 'FLARE' and 'STAR'
0m1mHISTORY0m
version 1.0 (09-July-95)
- initial release.
version 1.01 (15-August-95)
- added soft shadows
- added random jitter
- added brush repeat and mirror
version 1.02 (16-August-95)
- bugfix: altitude mapping -> black object: fixed
- bugfix: loading of TDDD-objects with brushes crashed: fixed
- added backdrop picture
- added BRIGHT-flags for surface
- added fog
version 1.03 (17-August-95)
- bugfix: sphere intersection test: fixed
version 1.04 (21-August-95)
- added global fog
version 1.05 (28-August-95)
- added animation commands
version 1.06 (01-September-95)
- added motion blur
version 1.07 (10-September-95)
- added specular brush mapping
version 1.08 (11-September-95)
- added rendering box
version 1.081 (08-October-95)
- added global reflection map
- changed error messages
version 1.082 (11-October-95)
- improved memory management for Imagine objects
version 1.083 (12-October-95)
- changed spotlight direction to lookpoint and added actor for lookpoint
- new form for vectors '<x,y,z>'
- new form for colors '[r,g,b]'
version 1.1 (18-October-95)
- next offical release
version 1.11 (19-October-95)
- bugfix: Imagine fog objects are now loaded properly
- added parameter check for field rendering
version 1.12 (21-October-95)
- speedup of motion blur
version 1.13 (01-November-95)
- bugfix: spotlight look point changed camera view point
- added soft interpolation of colors for brushmapping
- bugfix: objects behind light sources casted shadows
version 1.14 (03-November-95)
- changed default gaussian filter width from 1.8 to 1.3
- bugfix: problem with global fog
- plane can now be animated
- changed axis position in flat brush mapping
- added 'Time spend' and 'Time left'
version 1.15 (28-November-95)
- added PNG- and ILBM-modules
- added radial texture
version 1.16 (09-January-96)
- bugfix in PNG-module: had problems with palette pictures
- bugfix motion blur: had a problem with voxel calculations
- bugfix motion blur: had no motion blur in scenes with planes
- added TGA-module
- added 'SOFTSHADOW' to 'DISTRIB'
- optimized octree (up to 10% faster)
- added 'FALLOFF' for 'POINTLIGHT' and 'SPOTLIGHT'
- bugfix can now load plane
- bugfix can now load multiple planes or perfect spheres
version 1.17 (18-February-96)
- object loading is now done in modules
- added 3DS module
- bugfix in TDDD-module: hardness is now used to set REFEXP
- brushes and textures are no applied to surfaces which lie
between the light source and the illuminated surface
- bugfix antialiasing: there where some bright pixel trash in the picture
if antialiasing with fog was used
- rewrote bump, wood and marble textures
- global reflections map is now applied in 'QUICK' mode too
version 1.2 (29-February-96)
- bugfix: last line of picture has been always black
- bugfix: had problems with Imagine 4.0 TDDD objects
version 1.21 (25-March-96)
- TDDD objects are now rotated and scaled relative to axis of first object
- bugfix: since 1.2 shadows in motion blur scenes were calculated false
- bugfix: in some cases there were vertical and horizontal stripes in
rendered pictures
- bugfix: triangles which were exactly in one plane (XY,XZ,YZ) disapeared
version 1.22 (25-April-96)
- bugfix: had problems with sharp edges of TDDD objects
- bugfix: altitude brush mapping produced ugly results
- bugfix: fixed some motion blur bugs
- added 'SURFACE' to 'LOADOBJ' to replace objects surface with own surface
- added Datatype support for all commands which load brushes
version 1.25 (08-September-96)
- the RayStorm kernel is now a shared library
- added support of new TDDD TXT4 chunk for textures from Imagine 4.0
- changed the world axis orientation (x left, y up, z in)
version 1.26 (04-October-96)
- fixed error in marble texture
- bugfix: had problems with sharp edges of TDDD objects (once again)
version 1.3 (29-November-96)
- recompiled raystorm.library with StormC -> upto 30% faster (68030/881)
- backdrop pictures are now automatically scaled
- added lens effects (flare, light star)
0m1mHOMEPAGE0m
Come and visit our RayStorm-Homepage! There you can always get the latest
version of RayStorm and can see some example pictures.
The address:
http://sol.wohnheim.uni-ulm.de/~calvin/raystorm.html
0m1mFUTURE ADDITIONS0m
0m1mRayStorm Scenario0m
- modify triangle objects
- animation control
- Arexx port
- undo
- solid display (z-Buffer) (why is there no useable (fast) version of OpenGL for
Amiga available?)
- use Imagine staging files
0m1mRayStorm Raytracer0m
- more objects (torus, cylinder, ...)
- JPEG-saver
- animation language (ALAN)
- shadow caching
- more textures
- don't allocate whole picture buffer at once
- diffuse reflectivity
- diffuse transparency
- better light FX (lens flares)
- log file
- apply post-2D-FX
- spline interpolation for actors
- load Lightwave format
- CSG (Constructive Solid Geometry)
- metaballs
- some extra programs (e.g. terrain and plant generation)
0m1mAdvanced Animation and Rendering Techniques:
Theory and Practice0m
by
Alan Watt, Mark Watt, Addison-Wesley
0m1mTexturing and Modeling:
A procedural Approach0m
by
Ebert, Musgrave, Peachy, Perlin, Worley
0m1m-A-0m
3mAbout 0m
3mActive 0m
3mALIGNMENT 0m
3mAltitude brush 0m
3mAMBIENT 0m
3mANTIALIAS 0m
3mAntialiasing 0m
3mARexx 0m
3mAttributes 0m
3mAuthor 0m
0m1m-B-0m
3mBackdrop 0m
3mBrowse 0m
3mBrushes 0m
3m - show 0m
3mBRUSH 0m
3mBRUSHPATH 0m
3mBugs 0m
3mBump 0m
3mButtons 0m
0m1m-C-0m
3mCamera 0m
3m - Active 0m
3m - Settings 0m
3m - to viewer 0m
3mChecker 0m
3mCLEANUP 0m
3mCLEANUP 0m
3mColor brush 0m
3mCommands 0m
3mCoordinates 0m
3mCopy 0m
3mCopyright 0m
3mCredits 0m
3mCut 0m
3mCylinder mapping0m
0m1m-D-0m
3mDelete 0m
3mDepth of field 0m
3mDeselect All 0m
3mDIFFTRANS 0m
3mDIFFUSE 0m
3mDISPLAY 0m
3mDISTRIB 0m
0m1m-E-0m
3mErrors 0m
3mExamples 0m
0m1m-F-0m
3mFeatures 0m
3mFilter brush 0m
3mFLARE 0m
3mFlat mapping 0m
3mFocus 0m
3mFog 0m
3mFOGLEN 0m
3mFuture 0m
0m1m-G-0m
3mGeneral 0m
3mGETERRORSTR 0m
3mGlobal 0m
3mGrid 0m
3m - Size 0m
3m - Snap to 0m
0m1m-H-0m
3mHistory 0m
3mHomepage 0m
0m1m-I-0m
3mIMTEXTURE 0m
3mInternals 0m
3mInstallation 0m
3mIntroduction 0m
3m - Raytracer 0m
3m - Scenario 0m
3m - Script 0m
0m1m-L-0m
3mLegal Stuff 0m
3mLens flares 0m
3mLimitations 0m
3mLinear 0m
3mLoad 0m
3mLOADOBJ 0m
3mPointLight Set. 0m
3mSpotLight Set. 0m
0m1m-M-0m
3mMarble 0m
3mMenus 0m
3mMesh 0m
3m - Axis 0m
3m - Cube 0m
3m - Sphere 0m
3m - Plane 0m
3m - Tube 0m
3m - Cone 0m
3m - Torus 0m
3mMesh Settings 0m
3mMode 0m
3mMotion Blur 0m
3mMUI Prefs 0m
0m1m-N-0m
3mNew 0m
3mNEWACTOR 0m
3mNEWSURFACE 0m
0m1m-O-0m
3mOBJECTPATH 0m
3mOpen 0m
0m1m-P-0m
3mParameters 0m
3mPaste 0m
3mPC-Version 0m
3mPlane 0m
3mPLANE 0m
3mPointlight 0m
3m - Settings 0m
3mPOINTLIGHT 0m
3mPOSITION 0m
3mPrefs 0m
3mPrefs Load 0m
3mPrefs Save 0m
0m1m-Q-0m
3mQuit 0m
3mQUIT 0m
0m1m-R-0m
3mRadial 0m
3mRedraw 0m
3mREFEXP 0m
3mREFLECT 0m
3mReflect brush 0m
3mReflection map 0m
3mREFRINDEX 0m
3mRegister 0m
3mRender 0m
3m - Settings 0m
3mRequirements 0m
0m1m-S-0m
3mSave 0m
3mSave As 0m
3mSAVEPIC 0m
3mSelect All 0m
3mSelect Next 0m
3mSelect Previous 0m
3mSettings 0m
3mSETCAMERA 0m
3mSETSCREEN 0m
3mSETWORLD 0m
3mSIZE 0m
3mShow 0m
3m - Coordinates 0m
3m - Names 0m
3m - Brushes 0m
3m - Textures 0m
3mSoft shadows 0m
3mSPECTRANS 0m
3mSPECULAR 0m
3mSpecular brush 0m
3mSphere 0m
3mSPHERE 0m
3mSphere mapping 0m
3mSpotlight 0m
3m - Settings 0m
3mSPOTLIGHT 0m
3mSTAR 0m
3mStars 0m
3mSTARTRENDER 0m
3mSurface 0m
0m1m-T-0m
3mTEXTUREPATH 0m
3mTextures 0m
3m - description 0m
3m - show 0m
3mTips & Tricks 0m
3mTRANSEXP 0m
3mTransform 0m
3mTRANSLUC 0m
3mTRANSPAR 0m
3mTRIANGLE 0m
3mTutorials 0m
0m1m-U-0m
3mUsage 0m
0m1m-V-0m
3mView 0m
3mVirtual Memory 0m
3mVisible Light 0m
0m1m-W-0m
3mWINTOFRONT 0m
3mWood 0m
3mWWW 0m
0m1m-Z-0m
3mZoom fit 0m
3mZoom in 0m
3mZoom out 0m